控制反轉(inversion of control,縮寫為ioc),是物件導向程式設計中的一種設計原則,可以用來減低計算機**之間的耦合度。其中最常見的方式叫做依賴注入(dependency injection,簡稱di)。下面我們就為大家介紹一下php依賴注入的三種方式。
一、構造器注入
將被依賴物件通過建構函式的引數注入給依賴物件,並且在初始化物件的時候注入。
優點:
物件初始化完成後便可獲得可使用的物件。
缺點:
●當需要注入的物件很多時,構造器引數列表將會很長;
●不夠靈活。若有多種注入方式,每種方式只需注入指定幾個依賴,那麼就需要提供多個過載的建構函式,麻煩
二、setter方法注入
ioc service provider通過呼叫成員變數提供的setter函式將被依賴物件注入給依賴類。
優點:
靈活。可以選擇性地注入需要的物件。
缺點:
依賴物件初始化完成後由於尚未注入被依賴物件,因此還不能使用。
三、介面注入
依賴類必須要實現指定的介面,然後實現該介面中的乙個函式,該函式就是用於依賴注入。該函式的引數就是要注入的物件。
優點
介面注入中,介面的名字、函式的名字都不重要,只要保證函式的引數是要注入的物件型別即可。
缺點
侵入行太強,不建議使用。
ps:什麼是侵入行?
如果類a要使用別人提供的乙個功能,若為了使用這功能,需要在自己的類中增加額外的**,這就是侵入性。
依賴注入的三種方式 PHP的依賴注入 DI
php當中的依賴注入和控制反轉是面試中經常問到的問題。同時,很多框架中也使用到了這種設計模式,可能有很多小夥伴們對這兩個概念認識比較模糊,下面我就來給大家講講什麼是依賴注入。概念 是一種允許我們從硬編碼的依賴中解耦出來,從而在執行時或者編譯時能夠修改的軟體設計模式。說明 要想理解di 依賴注入 首先...
依賴注入的三種方式
依賴注入 為ioc別名,依賴注入是ioc的實現方式,ioc本質是將物件的建立由程式轉移到容器,依賴注入為實現這一目標的方式。1 構造方法注入 即被注入物件可以通過在其構造方法中宣告依賴物件的引數列表,讓外部 通常是ioc容器 知道它需要哪些依賴物件,然後ioc容器會檢查被注入物件的構造方法,取得其所...
依賴注入的三種方式
下面介紹三種方式,將被依賴物件注入給依賴類。將被依賴物件通過建構函式的引數注入給依賴物件,並且在初始化物件的時候注入。物件初始化完成後便可獲得可使用的物件。當需要注入的物件很多時,構造器引數列表將會很長 不夠靈活。若有多種注入方式,每種方式只需注入指定幾個依賴,那麼就需要提供多個過載的建構函式,麻煩...