php依賴注入的三種方式

2020-07-16 10:05:44

  控制反轉(Inversion of Control,縮寫為IoC),是物件導向程式設計中的一種設計原則,可以用來減低計算機程式碼之間的耦合度。其中最常見的方式叫做依賴注入(Dependency Injection,簡稱DI)。下面我們就為大家介紹一下php依賴注入的三種方式。

推薦教學:PHP視訊教學

一、構造器注入

  將被依賴物件通過建構函式的引數注入給依賴物件,並且在初始化物件的時候注入。

優點:

  物件初始化完成後便可獲得可使用的物件。

缺點:

  ●當需要注入的物件很多時,構造器參數列將會很長;

  ●不夠靈活。若有多種注入方式,每種方式只需注入指定幾個依賴,那麼就需要提供多個過載的建構函式,麻煩

二、setter方法注入

  IoC Service Provider通過呼叫成員變數提供的setter函數將被依賴物件注入給依賴類。

優點:

  靈活。可以選擇性地注入需要的物件。

缺點:

  依賴物件初始化完成後由於尚未注入被依賴物件,因此還不能使用。

三、介面注入

  依賴類必須要實現指定的介面,然後實現該介面中的一個函數,該函數就是用於依賴注入。該函數的引數就是要注入的物件。

優點

  介面注入中,介面的名字、函數的名字都不重要,只要保證函數的引數是要注入的物件型別即可。

缺點

  侵入行太強,不建議使用。

PS:什麼是侵入行?

  如果類A要使用別人提供的一個功能,若為了使用這功能,需要在自己的類中增加額外的程式碼,這就是侵入性。

以上就是php依賴注入的三種方式的詳細內容,更多請關注TW511.COM其它相關文章!