簡單理解依賴注入(DI,Dependency injection)
依賴注入通過構造注入,函數調用或者屬性的設置來提供組件的依賴關系。就是這么簡單。
簡單理解控制反轉(IOC,(Inversion of Control)
一開始我們代碼依賴關系可能是如圖這樣的,這里只舉例了3個對象和三個類的交叉依賴,我們代碼的依賴關系實際情況其實要復雜得多,腦補十多個對象的交叉,甚至還有橫向交叉。
現在問題來了,由于不可抗拒的原因,php版本升級,需求更改等等,要把α對象替換掉,把β對象刪掉,請問我們要改多少處代碼??
是時候拿出IOC了。
瞬間清爽。
IOC容器在全局維持一個對象實例集合和類名集合,我們在寫某個類的時候把這個類依賴的對象注冊到容器里,調用這個類的時候再實例化拿出來。
這個就是IOC的思想,一個系統通過組織控制和對象的完全分離來實現”控制反轉”。對于依賴注入,這就意味著通過在系統的其他地方控制和實例化依賴對象,從而實現了解耦。
相關推薦:最新的五個laravel視頻教程
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END