简析IoC和DI

       IoC(控制反转)是Spring容器的内核,AOP以及声明式事务都是在此之上完成的.
   IoC包括两层含义1.控制;2反转.关键的问题在于他把什么东西的控制给反转了.控制指组件之间的调用关系由程序自身控制(从而造成了紧耦合).反转是说,将这种调用关系的控制权从程序中异除,并交给第三方管理. 也就是组件的调用关系由程序自身管理转变为第三方管理.
   对于上述机制,应用IoC来描述并不准确,而且有些晦涩.
   之所以会产生组件调用,是为了获取被调用组件的功能,调用者将自己应该做的事情,委派给了被调用的对象.也就是说,调用者要完成自身的任务,必须依赖被调用的对象.这种关系实际上就是一般依赖关系(通俗点说,就是一个组件内部包含另外一个组件的实例,把该自己干的事交给自己包含的组件去完成),因此IoC所表述的机制,实际上就是将调用者对接口实现类的依赖关系,从程序中移除,转交第三方管理,并且,由第三方在运行期间将调用者依赖的具体类填充进来.也就是说组件之间的依赖关系,是在程序运行期间由第三方注入进来的.这个就是依赖注入的概念(DI).基于上述分析,DI比IoC更准确.
    DI,实际上就是将调用者为完成功能所依赖的实现类,在程序运行期间,由容器自动填充给调用者.这个就是依赖注入的核心思想.在依赖注入的应用中,组件并不关心被注入的对象是谁,只关心这个对象能完成的功能.也就是这个对象是那个接口的具体类实例.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值