一.控制反转(IoC)&依赖注入(DI)
1.控制反转: 所谓的控制反转就是应用本身不负责依赖对象的创建及维护, 依赖对象的创建及维护是由外部容器负责的.
这样控制权就由应用转移到了外部容器, 控制权的转移就是所谓的反转.
2.依赖注入: 所谓的依赖注入就是在运行期, 由外部容器动态地将依赖对象注入到组件中.
为了能更好的理解依赖注入, 我们不妨问自己两个问题:
1) 谁依赖谁? 为什么需要依赖?
当然是应用程序依赖于IoC容器, 应用程序需要IoC容器来提供对象需要的外部资源.
2)谁注入谁? 注入了什么?
当然是IoC容器注入应用程序某个对象, 注入对象所需要的外部资源(对象, 资源, 常量数据).
其实IoC和DI是统一个概念的不同角度描述, 相对IoC而言, '依赖注入' 明确描述了被注入对象依赖IoC容器配置依赖对象.