IoC控制反转

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

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

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


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

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

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

<?xml version="1.0" encoding="UTF-8" ?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns:p="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> 

 

posted @ 2015-07-05 10:41  chen2013  阅读(486)  评论(0编辑  收藏  举报