你的位置:首页 > Java教程

[Java教程]IoC控制反转


Ioc控制反转从字眼上体现在两个概念:1,控制  2,反转

控制:到底要控制什么呢?    答:create对象的控制权,即把某一接口具体实现类的选择控制权。

反转:最初的控制权是谁的? 控制权该交给谁?    答:一般我们用到什么对象直接在调用类中new,那么一开始的控制权就是调用类。然后把控制权交给第三方决定。


IoC不够开门见山,因此业界曾进行了广泛的讨论,最终软件界的泰斗级人物Martin Fowler提出了DI(依赖注入:Dependency Injection)的概念用以代替IoC

DI依赖注入:即让调用类对某一接口实现类的依赖关系由第三方(容器或协作类)注入,以移除调用类对某一接口实现类的依赖。

(容器或协作类) 如spring中的bean容器:

<??> <beans ="http://www.springframework.org/schema/beans"   ="http://www.w3.org/2001/   ="http://www.springframework.org/schema/p"   xsi:schemaLocation="http://www.springframework.org/schema/beans     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">   <bean id="接口类" class="实现类"/>   <bean id="调用类ID" class="调用类" p:接口类-ref="接口类"/></beans>