白話控制反轉(IOC)和依賴注入

2021-09-18 07:34:26 字數 861 閱讀 3669

ioc是inversion of control的縮寫,多數書籍翻譯成「控制反轉」,還有些書籍翻譯成為「控制反向」或者「控制倒置」。

這概念太抽象了,首先從語言入手 理解這問題。

控制反轉?

誰控制誰,誰反轉。

這根本沒有主語,這理解起來太抽象了。

那麼變成,如下的關係。

class a

}class b

void fun()

}class c

}

上面的例子中,b依賴於a;b控制a的建立。

那麼控制反轉是不是b控制a的建立?

不是期初我也是這麼理解的。

那麼怎麼反轉呢?

就是把依賴物件的建立架構c,

那麼將如下的乙個描述做控制反轉。

c使用b完成乙個機能,b依賴於a,b建立a。

控制反轉後。

c使用b完成乙個機能,b告訴x,我還需要b的幫忙,x說,這個不用你管,用你的時候我自然會把a注入給你。

於是程式變成這樣

class a

}class b

void fun()

}class spring

}class c

}

以上就是控制反轉、依賴注入的過程。

b控制a的建立,變成了spring控制a的建立,等同於c把物件建立的過程都交給了spring來完成。

控制反轉轉的是啥把b對a建立的控制轉給了框架,這裡就相當於spring。

依賴注入,把b對a的依賴轉換成了框架為b做物件注入。

總結一下

反轉就是,把對物件建立的控制轉給了框架。

把依賴的關係用框架注入的方式完成。

IOC控制反轉(依賴注入)

一。什麼叫控制反轉 moattack 墨攻劇本需要乙個英雄,去喊話,墨者革離 這時候劇本就控制liudehua 劉德華 去喊話。這個演員不一定確定是劉德華,我們可能找其他人來喊話,但是這個人必須有乙個功能喊話。所以我們定義了乙個角色介面 geli 演員實現這個介面。我們需要實現劇本只是依賴角色。而不...

控制反轉 IOC 和依賴注入 DI

控制反 從拆解字面上的意思,控制,是指物件建立 銷毀和管理 單例 的控制權,傳統程式設計上這個是交給呼叫方來控制。反轉,是指這些控制權優傳統上的呼叫方反轉為類似乙個容器的東西,統一調配和管理。依賴注入 依賴,其實就是耦合,這裡更多的是呼叫方和操作物件的耦合。注入是指,將某些耦合關係從乙個東西注入到另...

依賴注入(DI)和控制反轉(IOC)

依賴注入是用於實現控制反轉的最常見的方式之一。依賴注入的思想是 當乙個類對另乙個類有依賴時,不在該類內部對依賴的類進行例項化,而是有乙個配置好了的bean.xml檔案,告訴容器所依賴的類,在例項化該類時,容器自動注入乙個依賴的類的例項。傳統的方法就是在類中先例項化依賴的類,然後再呼叫該類中的方法。p...