2012-08-24 187 views
7

我一直在努力学习依赖注入,并已阅读并试图代码类似这样的小依赖注入容器:http://fabien.potencier.org/article/12/do-you-need-a-dependency-injection-container依赖注入容器 - 工厂模式

的一件事是困惑我是这样的:

不是一个依赖注入容器只是工厂模式的荣耀实现?

如果是这样,为什么不把它叫做那个,为什么只需要一个奇特的术语来混淆事项。

如果没有,有人可以解释我在这里失踪了吗?

+1

[依赖注入VS工厂模式(HTTP的可能重复。 com/questions/557742/dependency-injection-vs-factory-pattern) – podiluska

+1

'依赖注入'是一个比'依赖注入容器'更广泛的术语。很容易看出DI与工厂的区别,不容易看出DI Container与工厂之间的区别。所以我不认为这是一个重复的问题。 – Russ

回答

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