关于IOC的理解

什么是IOC

IOC译为控制反转,是一个抽象概念.从一个简单的java例子来理解IOC更容易:

传统模式下,我们调用一个服务接口,需要用new关键字声明它的实现类.比如一个支付接口,有一个外部而来的实现类:Zhifu1.在一个业务需求里面,需要用到Zhifu1类,于是在业务代码里会这样写:

Zhifu zf = new Zhifu1();
并且在所有业务里面都是使用相同方式调用 Zhifu1.那么问题来了,如果业务需求突然改变,或者因为某些原因,业务发生变动,实现类需要改变,需要改为使用另一个外部类 Pay1,那我们需要找到每个调用接口的地方,并一一改正过来.

这种传统模式下,把控制接口的权利交给业务代码,当业务需求改变时,需要将所有业务代码一一改变,低效且工作量大,这就是痛点所在.

在IOC的理念里,同样一个例子,一个支付接口,一个外部实现类: Zhifu1,还会多出一样东西:一个IOC容器.IOC可以管理所有的java类,容纳我们开发或外部的各种Bean,我们可以从中获取各种发布在IOC里的Bean,并且通过描述得到它.以Spring为例,上面的业务中,我们把外部实现类 Zhifu1在配置文件中声明:
<!--spring-config.xml-->
...
<bean id="ZhifuImpl" class="...Zhifu1">
...

然后在业务代码中通过spring上下文得到名为"ZhifuImpl"的类,并使用它,如果需要改变实现类,只需要在配置文件中将class改为对应的类即可,方便高效.

这就是IOC控制反转的概念,简单来讲,就是将控制权从业务代码里面脱离出来,交给专门的容器,让他们来管理Bean.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值