【发布时间】:2010-09-13 10:47:13
【问题描述】:
我已经看到很多关于依赖注入 (DI) 和控制反转 (IOC) 的参考资料,但我真的不知道它们之间是否有区别。
我想开始使用其中一种或两种,但我对它们有何不同感到有些困惑。
【问题讨论】:
-
控制反转通常指的是“容器”,而依赖注入指的是实际模式。但他们齐头并进。我建议阅读Martin Fowler's article 以了解该主题。
-
依赖注入是你做的事情,它导致了一个称为控制反转的命令结构。它们具有内在联系。
-
DI是IoC的一种形式,我在this answer中对DI和IoC做了相当详细的解释
-
我会说 DI 是 IOC 的一个特例。传统的控制去模块->从模块管理器请求模块,在DI中它被反转为模块管理器->从模块获取请求的依赖关系。
-
所以换句话说,基本上 IoC 是使用 DI 的一种实现。我理解正确吗?
标签: dependency-injection inversion-of-control