IOC和DI的理解
Posted zhanghf213
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOC和DI的理解相关的知识,希望对你有一定的参考价值。
IOC(控制反转)
概念:
控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器负责创建和维护。
理解:
当我们需要一个对象的时候,我们不是自己去new 一个对象,而是向外部容器申请一个来用。
如果我们想有一个住的房子,我们不会自己去画图纸,自己去建,自己装修,再去住。通常我们会去找开发商或者二手房中介找一个现成的买来用。这就是说我们并不负责对象本身创建和维护,由外部容器创建,我们只负责使用。
房屋中介 与 IOC 对比
- 房屋中介 IOC
- 找中介 找IOC容器
- 中介介绍房子 容器返回对象
- 租房入住 使用对象
DI(依赖注入)
概念:
DI是一种实现的方式,目的是创建对象并且组装对象的关系。
理解:
IOC容器在初始化过程中会创建一系列对象,同时把对象的依赖关系通过注入的方式组织起来。也就是说当一个类A持有一个类B,当实例化的时候,需要第一实例化一个A,第二实例化一个B,然后把B的对象赋值给A,这就是IOC容器负责组装的一个功能。
IOC(控制反转)和 DI(依赖注入)的关系
控制反转实际上是获取依赖对象的过程被反转了。也就是说获取依赖对象的过程不是我们自己来控制,而是由外部容器来控制,控制反转之后,获得依赖对象的过程由自身管理变成了由IOC容器主动注入。于是实现IOC的方法就是依赖注入。
所谓依赖注入就是由IOC容器在运行期间,动态的将某种依赖关系注入到对象之中。
以上是关于IOC和DI的理解的主要内容,如果未能解决你的问题,请参考以下文章