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的理解的主要内容,如果未能解决你的问题,请参考以下文章

关于IOC和DI的一些个人理解

IOC和DI,AOP的本质理解

IoC/DI的理解

IOC/DI的理解

对Spring中IOC和DI的理解

理解Spring中的IoC和DI