yii依賴注入就是把有依賴關係的類別放到容器中,解析出這些類別的實例,目的是實現類別的解耦,而「依賴注入」也是一種設計模式的實現,它的實作解決了我們實作功能時的對「前後依賴」或「上下文的依賴」的關注。
yii依賴注入:
#把有依賴關係的類別放到容器中,解析出這些類別的實例,就是依賴注入。目的是實作類別的解耦。
推薦:《yii教學》
#介紹:
在開始「依賴注入」之前,我們先說說設計模式,我覺的從這方面入手可能理解的更快一些。
在最開始學程式時,我們學的是「過程式」編程,比如說實現某些功能,從上到下一句一句的來實現,頂多是把某些通用的功能整理出來當做一些通用包(函數)。再然後我們了解到“面向對象”,隨之而來的就是如何應用“對象”的觀念來設計出更好的程序(各種設計模式),而“依賴注入”也是一種設計模式的實現。它的實作解決了我們實作功能時的對「前後依賴」或「上下文的依賴」的關注。這句話聽起來比較難懂,下面簡單解釋一下。
怎麼理解“前後依賴”
比如說我們要分別製造一輛“寶馬”和一輛“保時捷”,在製造寶馬時,要嚴格的遵守下面的順序(1 、2可以不固定順序):
1. 找到寶馬工廠,(require或include)
2. 準備好製造寶馬前的準備(初始化對象的參數,如果參數是對象的話,可能同樣需要準備一些參數。。)
3. 必須1和2 都準備完全了之後,才可以生成“BMW”(new BaoMa($params1,$params2….)),是1 和2 必須在3之前。
製造「保時捷」要同樣的過程,當然,製造其他的車的時候,也都要走一遍這個過程。這就是「前後依賴」的問題。有沒有一種辦法可以把實現車的這個過程單獨整理出來實現通用呢?也就是說先把實現過程準備好,然後再提供“原材料”,要實現什麼東西,就要看你提供的什麼“原材料”(依賴注入)。
以上是yii依賴注入是有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!