IOC:控制反轉(Inversion of Control,英文縮寫為 IOC) 簡單來講就是把代碼的控制權從調用方(用戶)轉變成被調用方(服務端) 以前的代碼控制權在調用方,所以要每當程式要更新修改功能時,一定要大量修改調用方的代碼才行,工程量大,維護麻煩。 後來有了IOC,可以將所有的功能模塊交 ...
IOC:控制反轉(Inversion of Control,英文縮寫為 IOC)
簡單來講就是把代碼的控制權從調用方(用戶)轉變成被調用方(服務端)
以前的代碼控制權在調用方,所以要每當程式要更新修改功能時,一定要大量修改調用方的代碼才行,工程量大,維護麻煩。
後來有了IOC,可以將所有的功能模塊交由配置文件(XML)統一管理,如果要增加或者刪除某個功能模塊時,只需要通過配置文件增加或刪除那個模塊的關聯就可以了。
全程不用修改調用方(用戶)的代碼,大大減少了程式更新時造成的損失。
我們將代碼的調用權(用戶)從調用方轉移給被調用方(服務端)的設計模式稱為控制反轉(IOC)
要實現 IOC,必須滿足下麵兩個條件:
(1)在程式啟動時就要根據配置文件關聯的各個模塊創建對象,放在Spring容器裡面。
(2)調用方(用戶)使用一個介面或類的引用(不用 new對象,這也是Spring實現可插拔的關鍵),就可以創建獲得對象。
我們將這種不用 new,而是根據介面或者類的引用就可以從被調用的容器里獲得創建的對象的方式稱為“依賴註入”。
所以,控制反轉(IOC)等於是“依賴註入”加上面向介面的編程思想的實現。