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

Imr*_*ran 4 c# design-patterns factory

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

Jon*_*eet 10

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

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