IOC 控制反轉

2021-09-14 01:09:29 字數 601 閱讀 8919

ioc是物件導向程式設計中的一種設計原則,可以借助「第三方」來減低計算機**之間的"耦合度 ",其中最常見的方式叫做依賴注入(dependency injection,簡稱di),還有一種方式叫「依賴查詢」(dependency lookup)。通過控制反轉,物件在被建立的時候,由乙個調控系統內所有物件的外界實體,將其所依賴的物件的引用傳遞給它。也可以說,依賴被注入到物件中。

「第三方」粘合劑.png

軟體系統在沒有引入ioc容器之前,物件a依賴於物件b,那麼物件a在初始化或者執行到某一點的時候,自己必須主動去建立物件b或者使用已經建立的物件b。無論是建立還是使用物件b,控制權都在自己手上。

軟體系統在引入ioc容器之後,由於ioc容器的加入,物件a與物件b之間失去了直接聯絡,所以,當物件a執行到需要物件b的時候,ioc容器會主動建立乙個物件b注入到物件a需要的地方。

通過前後的對比,我們不難看出來:物件a獲得依賴物件b的過程,由主動行為變為了被動行為,控制權顛倒過來了,這就是「控制反轉」這個名稱的由來。

IoC控制反轉

首先假設有乙個需求,類business需要呼叫類dependency的方法f 1 按照日常的做法,得到下面的 類dependency public class dependency 類business public class business public void dosomething 2 對...

IOC 控制反轉

想說說ioc inversion of control,控制反轉 這是spring的核心,貫穿始終。所謂ioc,對於spring框架來說,就是由spring來負責控制物件的生命週期和物件間的關係。這是什麼意思呢,舉個簡單的例子,我們是如何找女朋友的?常見的情況是,我們到處去看 有長得漂亮身材又好的m...

IoC 控制反轉

什麼是ioc呢?控制反轉 inversion of control,ioc 是物件導向程式設計中的一種設計原則,由於理論和實踐成熟的相對較晚,所以並沒有包含在gof中。早在2004年,martin fowler提出 哪些方面的控制被反轉了?這個問題。他總結出的結果是依賴物件的獲得被反轉了,因為大多數...