【Spring】控制反转IoC

1,IoC理论背景

在使用面向对象语言开发的系统中,不同对象之间相互协作得以实现业务逻辑。就像是一块机械手表,通过不同齿轮的协作,让时针、分针、秒针精确的运行。如果一个齿轮发生故障,那么整块手表的功能就要受到影响。手表齿轮之间的关系和软件系统中对象的耦合关系很相似。对象之间的耦合关系是必要的,也是无法避免的,它是对象间协同工作的基础。

伴随着企业级应用的规模的扩大,对象与对象间的关系越来越复杂,经常会出现对象间的多重依赖关系。对象间耦合度过高,必然会牵一发而动全身,对系统的扩展与维护带来严重的问题。降低系统之间、模块之间、对象之间的耦合度是软件工程永远追寻的目标之一。

为了解决对象之间的耦合问题,软件专家Michael Mattson提出了IoC理论。很多J2EE项目采用了IoC框架产品Spring。

2,什么是控制反转

IoC是Inversion of Control的缩写,多数书籍翻译成控制反转,也有的叫做“控制反向”或“控制倒置”。

1996年Michael Mattson在一篇讨论面向对象的框架中首次提出IoC这个概念。IoC理论的大致观点是:借助第三方实现对象之间关系的解耦。

如上图所示,由于引入第三方(IoC容器),使得对象A、B、C、D之间没有了耦合关系,齿轮的转动全部依靠IoC容器操控。IoC容器成为整个系统的核心,它起到了一种类似“粘和剂”的作用。

在没有IoC容器之前,对象A依赖于对象B,对象A在运行过程中需要用到B对象,那么A就要主动去创建和使用对象B,控制权在A手中。有了IoC容器之后,IoC容器会创建一个B对象注入到对象A需要的地方。创建对象由主动变为被动,控制权反转了,这就是“控制反转”的含义。控制反转又被叫做依赖注入。

3,IoC的优缺点

优点:实现组件之间解耦,提高了程序的灵活性和可维护性。

缺点:由于IoC容器生成对象时通过反射方式,在运行效率上有一定的损耗。

 

参考:

Spring的IOC原理[通俗解释一下]

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值