重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
php依賴注入有幾種方式?這個問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!
控制反轉(zhuǎn)(Inversion of Control,縮寫為IoC),是面向?qū)ο缶幊讨械囊环N設(shè)計原則,可以用來減低計算機(jī)代碼之間的耦合度。其中最常見的方式叫做依賴注入(Dependency Injection,簡稱DI)。下面我們就為大家介紹一下php依賴注入的三種方式。
一、構(gòu)造器注入
將被依賴對象通過構(gòu)造函數(shù)的參數(shù)注入給依賴對象,并且在初始化對象的時候注入。
優(yōu)點(diǎn):
對象初始化完成后便可獲得可使用的對象。
缺點(diǎn):
●當(dāng)需要注入的對象很多時,構(gòu)造器參數(shù)列表將會很長;
●不夠靈活。若有多種注入方式,每種方式只需注入指定幾個依賴,那么就需要提供多個重載的構(gòu)造函數(shù),麻煩
二、setter方法注入
IoC Service Provider通過調(diào)用成員變量提供的setter函數(shù)將被依賴對象注入給依賴類。
優(yōu)點(diǎn):
靈活。可以選擇性地注入需要的對象。
缺點(diǎn):
依賴對象初始化完成后由于尚未注入被依賴對象,因此還不能使用。
三、接口注入
依賴類必須要實(shí)現(xiàn)指定的接口,然后實(shí)現(xiàn)該接口中的一個函數(shù),該函數(shù)就是用于依賴注入。該函數(shù)的參數(shù)就是要注入的對象。
優(yōu)點(diǎn)
接口注入中,接口的名字、函數(shù)的名字都不重要,只要保證函數(shù)的參數(shù)是要注入的對象類型即可。
缺點(diǎn)
侵入行太強(qiáng),不建議使用。
PS:什么是侵入行?
如果類A要使用別人提供的一個功能,若為了使用這功能,需要在自己的類中增加額外的代碼,這就是侵入性。
感謝各位的閱讀!看完上述內(nèi)容,你們對php依賴注入有幾種方式大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。