依赖注入容器 - 工厂模式

7
我一直在尝试学习依赖注入,并正在阅读并尝试编写类似于此的小型依赖注入容器:http://fabien.potencier.org/article/12/do-you-need-a-dependency-injection-container
让我困惑的是:
难道依赖注入容器不就是工厂模式的实现方式吗?
如果是这样,为什么不直接称其为工厂模式呢?只会让事情更加混乱,需要一个花哨词汇干嘛。
如果不是,请有人能解释一下我错过了什么吗?

1
可能是依赖注入与工厂模式的重复问题。 - podiluska
1
“依赖注入”这个术语比“依赖注入容器”广泛得多。很容易看出DI和工厂之间的区别,但很难看出DI容器和工厂之间的区别。因此,我认为这不是重复的问题。 - Russ
1个回答

8
你需要区分依赖注入和控制反转。 依赖注入是指将依赖项注入到类中,而不是让类自己负责其依赖项。 控制反转是指某个东西掌控对象及其生命周期。在这种情况下,容器决定何时以及如何创建和处理对象。 工厂模式是每次调用都创建一个新对象。该模式本身并未说明应如何创建依赖项。
因此,您可以配置不同的生存期,并使用子容器来控制具有有限生命周期的对象。
我在这里写了一篇文章:http://www.codeproject.com/Articles/386164/Get-injected-into-the-world-of-inverted-dependenci 或者如果您想看更多示例:http://www.codeproject.com/Articles/440665/Having-fun-with-Griffin-Container

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接