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