【发布时间】:2012-10-08 06:21:09
【问题描述】:
我想写一个工厂来实例化一个具体的类并将它的接口返回给客户端。通过这种方式,我可以将客户端与直接依赖于具体类解耦。但是,同时我不希望工厂依赖于具体类。我可以使用反射来满足我的需要,但在这样做之前我想知道这是否是一个好的做法。
【问题讨论】:
标签: c# design-patterns factory
我想写一个工厂来实例化一个具体的类并将它的接口返回给客户端。通过这种方式,我可以将客户端与直接依赖于具体类解耦。但是,同时我不希望工厂依赖于具体类。我可以使用反射来满足我的需要,但在这样做之前我想知道这是否是一个好的做法。
【问题讨论】:
标签: c# design-patterns factory
很难说没有更多细节,但我通常期望工厂实现依赖于它创建实例的具体类。在我看来,这是一种完全自然的依赖。
如果你想让它成为一个非常通用的工厂,它本质上精确地增加了价值因为它使用了反射——本质上是做大多数 IoC 容器所做的一小部分——那没关系;但如果它是一种特定类型的工厂,那么我只会接受依赖。它可能会导致代码更易于理解和测试,并且效率更高。
【讨论】:
是的,您的方法将是很好的做法。但是已经有一些框架可以为您工作。请参阅MEF 框架。
【讨论】:
是的,你的方法很好,我认为它没有任何问题。但是,您应该使用一些已经存在的框架,而不是花时间来做这件事。
【讨论】: