yii依賴注入是有什么用

yii依賴注入就是把有依賴關系的類放到容器中,解析出這些類的實例,目的是實現類的解耦,而“依賴注入”也是一種設計模式的實現,它的實現解決了我們實現功能時的對“前后依賴”或者說是“上下文的依賴”的關注。

yii依賴注入是有什么用

yii依賴注入:

把有依賴關系的類放到容器中,解析出這些類的實例,就是依賴注入。目的是實現類的解耦。

推薦:《yii教程

介紹:

在開始“依賴注入”之前,我們先說說設計模式,我覺的從這方面入手可能理解的更快一些。

在最開始學程序時,我們學的是“過程式”編程,比如說實現某些功能,從上到下一句一句的來實現,頂多是把某些通用的功能整理出來當做一些通用包(函數)。再然后我們了解到“面向對象”,隨之而來的就是如何應用“對象”的觀念來設計出更好的程序(各種設計模式),而“依賴注入”也是一種設計模式的實現。它的實現解決了我們實現功能時的對“前后依賴”或者說是“上下文的依賴”的關注。這句話聽起來比較難懂,下面簡單解釋一下。

怎么理解“前后依賴”

比如說我們要分別制造一輛“寶馬”和一輛“保時捷”,在制造寶馬時,要嚴格的遵守下面的順序(1、2可以不固定順序):

1. 找到寶馬工廠,(require或include)

2. 準備好制造寶馬前的準備(初始化對象的參數,如果參數是對象的話,可能同樣需要準備一些參數。。。)

3. 必須1和2 都準備完全了之后,才可以生成“寶馬”(new BaoMa($params1,$params2….)),就是1 和 2 必須在3之前。

制造“保時捷”要同樣的過程,當然,制造其他的車的時候,也都要走一遍這個過程。這就是“前后依賴”的問題。有沒有一種辦法可以把實現車的這個過程單獨整理出來實現通用呢?也就是說先把實現過程準備好,然后再提供“原材料”,要實現什么東西,就要看你提供的什么“原材料”(依賴注入)。

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享