首頁 >後端開發 >php教程 >yii2 隨筆(七)依賴注入-(1)什麼是依賴注入

yii2 隨筆(七)依賴注入-(1)什麼是依賴注入

黄舟
黄舟原創
2017-01-17 10:32:331114瀏覽

在學yii2之前,就已經知道了「依賴注入」的這個名詞,也嘗試了解過,但是都是一直雲裡霧裡的,可能是一直沒有機會真實的使用過,所以了解的不太徹底,這次學習yii2順便把這個所謂「高大上」給搞定! ! !哈哈

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

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

怎麼理解“前後依賴”

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

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

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

3.必須1和2 都準備完全了之後,才可以產生「BMW」(new BaoMa($params1,$params2….)),就是1 和2 必須在3之前。

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

以上就是yii2 隨筆(七)依賴注入-(1)什麼是依賴注入的內容,更多相關內容請關注PHP中文網(www.php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn