依賴注入和控制反轉的理解

依賴注入(DI)和控制反轉(IOC)基本是一個意思,因為說起來誰都離不開誰。

簡單來說,a依賴b,但a不控制b的創建和銷燬,僅使用b,那麼b的控制權交給a之外處理,這叫控制反轉(IOC),而a要依賴b,必然要使用b的instance,那麼

  1. 通過a的接口,把b傳入;
  2. 通過a的構造,把b傳入;
  3. 通過設置a的屬性,把b傳入;

這個過程叫依賴注入(DI)。

那麼什麼是IOC Container?

隨著DI的頻繁使用,要實現IOC,會有很多重複代碼,甚至隨著技術的發展,有更多新的實現方法和方案,那麼有人就把這些實現IOC的代碼打包成組件或框架,來避免人們重複造輪子。

所以實現IOC的組件或者框架,我們可以叫它IOC Container。



只講原理,不講過程。


大多數面向對象編程語言,在調用一個類的時候,先要實例化這個類,生成一個對象。


如果你在寫一個類,過程中要調用到很多其它類,甚至這裡的其它類,也要“依賴”於更多其它的類,那麼可以想象,你要進行多少次實例化。


這就是“依賴”的意思。

依賴注入,全稱是“依賴注入到容器”, 容器(IOC容器)是一個設計模式,它也是個對象,你把某個類(不管有多少依賴關係)放入這個容器中,可以“解析”出這個類的實例。

所以依賴注入就是把有依賴關係的類放入容器(IOC容器)中,然後解析出這個類的實例。僅此而已。


播放

暫停

進入全屏

退出全屏

00:00

00:00

重播

刷新

試試


分享到:


相關文章: