控制反轉(Inversion of Control,縮寫為IoC),是物件導向程式設計中的一種設計原則,可以用來減少電腦程式碼之間的耦合度。
其中最常見的方式叫做依賴注入(Dependency Injection,簡稱DI),還有一種方式叫做「依賴尋找」(Dependency Lookup)。透過控制反轉,物件在被創建的時候,由一個調控系統內所有物件的外界實體將其所依賴的物件的引用傳遞給它。也可以說,依賴被注入到物件中。
IoC是一個很大的概念,可以用不同的方式實現。
其主要形式有兩種:
依賴查找:
容器提供回呼介面和上下文條件給元件。 EJB和Apache Avalon 都使用這種方式。這樣一來,元件就必須使用容器提供的API來尋找資源和協作對象,僅有的控制反轉只體現在那些回呼方法上(也就是上面所說的類型1):容器將呼叫這些回呼方法,從而讓應用程式碼獲得相關資源。
依賴注入:
元件不做定位查詢,只提供普通的Java方法讓容器去決定依賴關係。容器全權負責的元件的組裝,它會把符合依賴關係的物件經由JavaBean屬性或建構函式傳遞給需要的物件。透過JavaBean屬性注射依賴關係的做法稱為設值方法注入(Setter Injection);將依賴關係作為建構子參數傳入的做法稱為建構器注入(Constructor Injection)
以上是ioc是什麼意思的縮寫的詳細內容。更多資訊請關注PHP中文網其他相關文章!