控制反轉(Inversion of Control,縮寫為IoC),是物件導向程式設計中的一種設計原則,可以用來減低計算機程式碼之間的耦合度。其中最常見的方式叫做依賴注入(Dependency Injection,簡稱DI)。下面我們就為大家介紹一下php依賴注入的三種方式。
推薦教學:PHP視訊教學
一、構造器注入
將被依賴物件通過建構函式的引數注入給依賴物件,並且在初始化物件的時候注入。
優點:
物件初始化完成後便可獲得可使用的物件。
缺點:
●當需要注入的物件很多時,構造器參數列將會很長;
●不夠靈活。若有多種注入方式,每種方式只需注入指定幾個依賴,那麼就需要提供多個過載的建構函式,麻煩
二、setter方法注入
IoC Service Provider通過呼叫成員變數提供的setter函數將被依賴物件注入給依賴類。
優點:
靈活。可以選擇性地注入需要的物件。
缺點:
依賴物件初始化完成後由於尚未注入被依賴物件,因此還不能使用。
三、介面注入
依賴類必須要實現指定的介面,然後實現該介面中的一個函數,該函數就是用於依賴注入。該函數的引數就是要注入的物件。
優點
介面注入中,介面的名字、函數的名字都不重要,只要保證函數的引數是要注入的物件型別即可。
缺點
侵入行太強,不建議使用。
PS:什麼是侵入行?
如果類A要使用別人提供的一個功能,若為了使用這功能,需要在自己的類中增加額外的程式碼,這就是侵入性。
以上就是php依賴注入的三種方式的詳細內容,更多請關注TW511.COM其它相關文章!