ioc(inverse of control) 通常被稱為控制反轉 ,是一種設計模式,主要關注元件的依賴性,配置,以及元件的生命週期。
ioc也適應與類,同常情況下呼叫乙個類的是弘揚,必須由自己建立乙個呼叫類的物件的示例;採用ioc 模式以後,建立類的例項的任務交給容器或者框架來完成,應用程式直接使用容器或者框架中的建立的類的物件即可。
public
class song
}
上面**事件的依賴關係為,唱歌事件依賴於zhoujielun 這個物件,通過直接呼叫zhoujielun這個物件的方法singsong 來完成唱歌這一事件的發生,如果zhoujielun這一物件出現異常,那麼唱歌事件將無法發生,這樣寫出來的程式耦合度高。
public
class song
}
上面的這段**引入了乙個singer 的介面,通過介面來完成唱歌的事件,這樣一來,如果zhoujielun來不了了,可以選擇其他的物件來完成演唱的事件,這樣就由個人演唱會變成了群星演唱會。不過這樣一來一來關係變成了唱歌事件依賴於singer物件和zhoujielun,並沒有實現真正的解耦,要想實現真正的解耦,可以在唱歌這一過程中加入乙個導演,實現讓導演控制整個流程,導演負責將zhoujielun這個物件設定為演唱者,至於唱什麼,怎麼唱,最由zhoujielun這個物件來決定,以此方式來完成演唱事件。
加入導演以後,song中的sing方法不再依賴於zhoujielun這個物件,整個演唱事件都是有導演來控制,乙個director類來控制各物件之間的呼叫關係,各個零散的物件由director統一和裝配完成演唱事件,在這之中,director所起的作用,就是開頭說的容器或者框架實現的功能。
**控制反轉ioc 包括兩部分內容,一部分是控制,另一部分是反轉,,控制指的是物件應該呼叫那個類的控制權,反轉指的是控制權由呼叫物件轉移到容器或者框架。使用ioc後物件將會被動的接受它所依賴的類而不需要自己去找該類,容器會將物件的以來類提供給他**。
此文為博主學習所用,如有錯誤歡迎指正!
IoC控制反轉
首先假設有乙個需求,類business需要呼叫類dependency的方法f 1 按照日常的做法,得到下面的 類dependency public class dependency 類business public class business public void dosomething 2 對...
IOC 控制反轉
ioc是物件導向程式設計中的一種設計原則,可以借助 第三方 來減低計算機 之間的 耦合度 其中最常見的方式叫做依賴注入 dependency injection,簡稱di 還有一種方式叫 依賴查詢 dependency lookup 通過控制反轉,物件在被建立的時候,由乙個調控系統內所有物件的外界實...
IOC 控制反轉
想說說ioc inversion of control,控制反轉 這是spring的核心,貫穿始終。所謂ioc,對於spring框架來說,就是由spring來負責控制物件的生命週期和物件間的關係。這是什麼意思呢,舉個簡單的例子,我們是如何找女朋友的?常見的情況是,我們到處去看 有長得漂亮身材又好的m...