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>
新聞熱點
疑難解答