在工厂反思一个好的做法?

时间:2012-10-08 06:21:09

标签: c# design-patterns factory

我想编写一个实例化实例化具体类并将其接口返回给客户端的工厂。通过这种方式,我可以将客户端与直接依赖于具体类相分离。但是,与此同时,我并不希望工厂对具体课程有所依赖。我可以使用Reflection来满足我的需要,但在此之前我想知道这是否是一个好习惯。

3 个答案:

答案 0 :(得分:10)

如果没有更多细节,很难说,但我通常期望工厂实现依赖于它创建实例的具体类。在我看来,这是一种完全自然的依赖。

如果你想让它成为一个非常通用的工厂,它本质上可以精确地增加的价值,因为它使用反射 - 实质上是做大多数IoC容器所做的一小部分 - 那很好;但如果它是一个特定类型的工厂,那么我只是采取依赖。它可能会导致代码更容易理解和测试,而且效率更高。

答案 1 :(得分:0)

是的,您的方法将是良好的做法。但是已经存在可以为您完成工作的框架。请参阅MEF框架。

答案 2 :(得分:0)

是的,你的方法很好,我没有看到任何问题。但是,您应该使用一些已有的框架,而不是花时间去做。

您可以考虑Spring Framework's IOC module