溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php依賴注入有幾種方式

發(fā)布時間:2020-11-09 14:31:29 來源:億速云 閱讀:164 作者:小新 欄目:編程語言

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è)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI