IOC

IOC 即 Inversion Of Control , 控制反转。 是为了解决对象之间耦合度过高的问题。
例如,对象A依赖于对象B, 在A需要使用B对象时,需要自己New 一个B对象来使用,控制权在A手中。
如果利用第三方IOC容器,容器会在A需要B对象时创建一个对象B**注入**到A所需的地方,A获得对象B的过程,由主动变成了被动,即控制权被反转了。

IOC与DI
DI 即为Dependency Injection, 依赖注入。它其实可以说是IOC的别名。 IOC是控制反转,指的其实是 “获得依赖对象的过程被反转了”,获得以来对象的过程由自身管理变为了IOC容器注入。因此,IOC可以称为“依赖注入”,即IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。

通常,每个对象负责管理与自己协作的对象(即它所依赖的对象)的引用,会导致高度耦合和难以测试的代码。
通过依赖注入,对象的依赖关系由负责协调系统中各个对象的第三方组件在创建对象时设定。对象无需自行创建或管理它们的依赖关系,依赖关系会自动注入到需要它们的对象中去。 –《Spring 实战》

所以,IOC与DI其实是从不同角度描述同一件事情: 通过引入IOC容器,利用依赖注入的方式,实现对象之间的解耦。

IOC中运用到java的“反射”机制,根据类名等动态地生成对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值