1. 程式人生 > >大話DI依賴注入+IOC控制反轉(一) 之 定義

大話DI依賴注入+IOC控制反轉(一) 之 定義

原文: 大話DI依賴注入+IOC控制反轉(一) 之 定義

轉發時請註明原創作者及地址,否則追究責任。原創:alunchen

 

依賴注入與控制反轉
      依賴注入與控制反轉是老生常談的問題。一般面試也會面試到這種問題。網上很多很多這方面的資料,搜尋出來一大堆。
下面我們大話一下這些個定義。


DI依賴注入
      依賴注入既依賴,又注入。依賴的是容器,注入的也是容器,把你的物件放入容器,並且依賴於容器。

IOC控制反轉
      控制反轉,意思是物件的建立由容器來確定。
      在我們開始接觸程式設計時,一般都是通過new來建立物件。這種做法有什麼缺點呢?提高了建立物件時的耦合度、建立物件時的不統一。那麼我們如果降低耦合度、統一地建立物件呢?
      通過工廠方法來建立物件可以嗎?通過工廠的確可以實現我們的目的。工廠模式,我們已經開始接觸控制反轉中的‘反轉’了。因為物件不是我們建立,都是有工廠來建立。說到反轉,其實我們在寫程式碼時,有用到方法間的呼叫,都是使用‘反轉’。封裝都會用到反轉,下面用白話說清楚一點。
      反轉第一次聽比較難理解,其實說白了,就是原來你控制的邏輯、物件,變成交由第三方控制。如你建立了一個公共方法,提供RSA加解密。呼叫加密時,我們只需要提供一個鑰匙與明文就能返回一個密文,不需要知道實現的邏輯。這就是反轉,不是我們控制。
      再聊聊控制反轉的進化史。
      隨著物件的增多,工廠模式顯得很‘累贅’,因為每個物件都需要自己寫個方法甚至類去建立。
      這時候,容器的想法出現了。用容器裝載所有的物件,需要此物件時從容器取出即可。不需要管理物件。

 

 

 

可以關注本人的公眾號,多年經驗的原創文章共享給大家。