gpt4 book ai didi

c# - 如何将接口(interface)与实现分离

转载 作者:行者123 更新时间:2023-11-30 22:30:01 25 4
gpt4 key购买 nike

是否有可能将接口(interface)与实现分开,在这种情况下,客户端程序集不知道实际的实现并且只在接口(interface)上工作。如果我们将对象创建卸载到另一个组件,它仍然会创建对实际实现类型的依赖。

我可以考虑使用反射来做到这一点,其中一个层负责为被转换为接口(interface)的对象提供服务。类型的实际实例化是通过反射完成的,并存储在字典中,其中键是接口(interface),值是实现对象。这样客户端代码就不知道实现的类型。

是否有一种设计模式可以在不进行反射的情况下做到这一点?

预先感谢您的回答

最佳答案

反射在动态 分配场景中很有用,例如在基于插件的系统中。如果您不想管理那种环境,只需在代码中声明所有实现并在消费者中仅使用接口(interface)。

问题是,在这两种情况下,在某些时候必须有“某人”决定创建哪种真实类型。在基于插件的逻辑的情况下,它可能是 PluginManager,在其他情况下可能是一些 factory 方法/calss。

设计模式是IoC ,如果您对此不感兴趣。

希望对你有帮助

关于c# - 如何将接口(interface)与实现分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9890831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com