我一直在尝试学习依赖注入,并且一直在阅读并尝试编写类似于此的小型依赖注入容器:http://fabien.potencier.org/article/12/do-you-need-a-dependency-injection-container
令我困惑的一件事是:
依赖注入容器不仅仅是工厂模式的美化实现吗?
如果是这样,为什么不直接称之为,为什么需要一个花哨的术语只是为了混淆事情。
如果不是,有人可以解释我在这里缺少的东西吗?
答案 0 :(得分:7)
您必须将依赖注入和控制反转分开。
依赖注入是指将依赖项注入到类中,而不是让类本身对其依赖项负责。
控制反转更倾向于控制对象及其生命周期。在这种情况下,由容器来决定何时以及如何创建和处理对象。
工厂模式都是关于在每次调用时创建新对象。模式本身并没有说明应该如何创建依赖项。
这就是为什么你可以配置不同的生命周期并使用子容器来控制寿命有限的对象。
我在这里写了一篇文章: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