大多数的引用依赖注入的例子,我们也可以使用工厂模式来解决。看起来,当涉及到使用/设计时,依赖注入和工厂之间的区别变得模糊或薄弱。
一旦有人告诉我,它如何使用它,这有所作为!
我曾经使用过StructureMap的一个DI容器来解决一个问题,后来我重新设计了一个简单的工厂,去掉了对StructureMap的引用。
谁能告诉我他们之间有什么区别,在哪里使用什么,这里最好的做法是什么?
发布于 2017-12-22 03:52:08
DI的一个缺点是它不能用逻辑来初始化对象。例如,当我需要创建一个具有随机名称和年龄的字符时,DI不是工厂模式的选择。有了工厂,我们可以很容易地将随机算法从对象创建封装起来,支持一种叫做“封装变化”的设计模式。
发布于 2017-12-22 03:51:38
当使用工厂时,ni1的代码实际上仍然负责创建对象。通过DI,您将该责任外包给与您的代码分开的另一个类或框架。
相似问题
领取专属 10元无门槛券
AI混元助手 在线答疑
洞察 腾讯核心技术
剖析业界实践案例