控制反转

控制反转的清楚解释:http://zh.wikipedia.org/wiki/%E6%8E%A7%E5%88%B6%E5%8F%8D%E8%BD%AC

(不得不鄙视一下百度百科)

虽然wiki上已经讲得很清楚了,但是把自己理解的付诸于纸上,这才是自己的。

控制依赖:

class A , class B  

  若(1)A调用了B中的方法(2)A是B的子类(3)A依赖于C,而C又依赖于B,

符合以上三个条件,则说明A依赖于B。

循环依赖:

A依赖于B,B又依赖于A,造成循环依赖。 循环依赖说明A,B不能单独运行。

消除依赖:

若A调用B中的某个方法,可以这样做:将A调用B中的所有方法的声明放在一个接口I中,B实现接口I,而A调用接口I中的方法。现在A,B都依赖于接口I。

需要注意的是,类Y可能还依赖于其他类。在应用反转之前,X依赖于Y,从而也间接依赖于Y所依赖的所有“其他类”。应用控制反转之后,不仅X对Y的直接依赖,且前面提到的那些所有的间接依赖也消除了。而新引入的接口I则不依赖于任何类。

 

spring中使用IOC的好处:http://blog.csdn.net/centre10/article/details/6123649

IOC的好处是:降低耦合性:某个类的一个属性,以前是该类自己控制,而引人Spring后,这个类的属性由Spring控制。

Spring IOC的模拟所做的事情是:在xml文件配置好相应的bean,设置注入关系。在解析xml时候对bean进行初始化同时对相应属性进行注入。

posted @ 2012-11-05 15:11  梅子毅  阅读(1631)  评论(2编辑  收藏  举报