大话DI依赖注入+IOC控制反转 之 定义

Posted lonelyxmas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大话DI依赖注入+IOC控制反转 之 定义相关的知识,希望对你有一定的参考价值。

原文:大话DI依赖注入+IOC控制反转(一) 之 定义

转发时请注明原创作者及地址,否则追究责任。原创:alunchen

 

依赖注入与控制反转
      依赖注入与控制反转是老生常谈的问题。一般面试也会面试到这种问题。网上很多很多这方面的资料,搜索出来一大堆。
下面我们大话一下这些个定义。


DI依赖注入
      依赖注入既依赖,又注入。依赖的是容器,注入的也是容器,把你的对象放入容器,并且依赖于容器。

IOC控制反转
      控制反转,意思是对象的创建由容器来确定。
      在我们开始接触编程时,一般都是通过new来创建对象。这种做法有什么缺点呢?提高了创建对象时的耦合度、创建对象时的不统一。那么我们如果降低耦合度、统一地创建对象呢?
      通过工厂方法来创建对象可以吗?通过工厂的确可以实现我们的目的。工厂模式,我们已经开始接触控制反转中的‘反转’了。因为对象不是我们创建,都是有工厂来创建。说到反转,其实我们在写代码时,有用到方法间的调用,都是使用‘反转’。封装都会用到反转,下面用白话说清楚一点。
      反转第一次听比较难理解,其实说白了,就是原来你控制的逻辑、对象,变成交由第三方控制。如你创建了一个公共方法,提供RSA加解密。调用加密时,我们只需要提供一个钥匙与明文就能返回一个密文,不需要知道实现的逻辑。这就是反转,不是我们控制。
      再聊聊控制反转的进化史。
      随着对象的增多,工厂模式显得很‘累赘’,因为每个对象都需要自己写个方法甚至类去创建。
      这时候,容器的想法出现了。用容器装载所有的对象,需要此对象时从容器取出即可。不需要管理对象。

 

 

 

可以关注本人的公众号,多年经验的原创文章共享给大家。

   技术分享图片












以上是关于大话DI依赖注入+IOC控制反转 之 定义的主要内容,如果未能解决你的问题,请参考以下文章

Spring 之 控制反转(IoC), 依赖注入(DI)和面向切面(AOP)

Spring_IOC控制反转和DI依赖注入

控制反转(IOC)/依赖注入(DI)理解

控制反转(IOC)和依赖注入(DI)的区别

Spring之IOC/DI(反转控制/依赖注入)_入门Demo

IoC(控制反转) DI(依赖注入)