天天看點

Spring的IOC(Inversion of Control)(控制反轉)

IOC(Inversion of Control)(控制反轉):

其思想是反轉資源擷取的方向.傳統的資源查找方式要求元件向容器發起請求

查找資源. 作為回應, 容器适時的傳回資源. 而應用了 IOC 之後, 則是容器主動

地将資源推送給它所管理的元件, 元件所要做的僅是選擇一種合适的方式來接

受資源. 這種行為也被稱為查找的被動形式







控制反轉的發展由來,是為了把控制權從class檔案中脫離,進而更少的編譯java源檔案。

 

1.main控制:運作簡單,操作容易。缺點必須修改源代碼來把握控制權

 

2.使用工廠模式:可以通過傳入的參數來确定建立哪個對象,建立大部分對象不需要修改源代碼

   如果新增了對象,就必須工廠的判斷代碼,也不符合,封閉和開放原則

 

3.控制反轉:隻有源代碼的修改才需要重新編譯,可以完全将控制權交給配置檔案

 缺點:編碼複雜,代碼多的問題(spring)

 

面相對象的設計原則:

1.單一職責原則:一個類隻做一件事情

2.封閉和開放原則:對修改關閉,對拓展開放

 

通過配置spring.xml的bean來執行個體化Dog對象


        
Spring的IOC(Inversion of Control)(控制反轉)
然後可以在Java擷取到這個bean,并用它的父接口Animal來接收
Spring的IOC(Inversion of Control)(控制反轉)
這樣一來Spring的控制反轉便把所有的控制權交給了配置檔案,我們完全可以在spring.xml檔案中修改bean的class屬性來控制建立Animal的其它對象