您好,登錄后才能下訂單哦!
php依賴注入有幾種方式?這個問題可能是我們日常學習或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純热荩屛覀円黄饋砜纯窗桑?/p>
控制反轉(Inversion of Control,縮寫為IoC),是面向對象編程中的一種設計原則,可以用來減低計算機代碼之間的耦合度。其中最常見的方式叫做依賴注入(Dependency Injection,簡稱DI)。下面我們就為大家介紹一下php依賴注入的三種方式。
一、構造器注入
將被依賴對象通過構造函數(shù)的參數(shù)注入給依賴對象,并且在初始化對象的時候注入。
優(yōu)點:
對象初始化完成后便可獲得可使用的對象。
缺點:
●當需要注入的對象很多時,構造器參數(shù)列表將會很長;
●不夠靈活。若有多種注入方式,每種方式只需注入指定幾個依賴,那么就需要提供多個重載的構造函數(shù),麻煩
二、setter方法注入
IoC Service Provider通過調用成員變量提供的setter函數(shù)將被依賴對象注入給依賴類。
優(yōu)點:
靈活??梢赃x擇性地注入需要的對象。
缺點:
依賴對象初始化完成后由于尚未注入被依賴對象,因此還不能使用。
三、接口注入
依賴類必須要實現(xiàn)指定的接口,然后實現(xiàn)該接口中的一個函數(shù),該函數(shù)就是用于依賴注入。該函數(shù)的參數(shù)就是要注入的對象。
優(yōu)點
接口注入中,接口的名字、函數(shù)的名字都不重要,只要保證函數(shù)的參數(shù)是要注入的對象類型即可。
缺點
侵入行太強,不建議使用。
PS:什么是侵入行?
如果類A要使用別人提供的一個功能,若為了使用這功能,需要在自己的類中增加額外的代碼,這就是侵入性。
感謝各位的閱讀!看完上述內容,你們對php依賴注入有幾種方式大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。