首頁 >php框架 >ThinkPHP >ThinkPHP容器之控制反轉與依賴注入

ThinkPHP容器之控制反轉與依賴注入

咔咔
咔咔原創
2020-10-10 11:27:492091瀏覽

依賴注入控制反轉名字聽起來很迷,看了這篇文章你就知道它是什麼玩意了。

三、如何理解控制反轉與依賴注入

其實這兩個就是指的一個東西,就是一種程式設計思想而已,不要想的那麼難以理解和高大。

那麼什麼是容器,容器直面理解就是裝東西的東西。在程式設計中,我們常見的變數、物件屬性都是一個容器。一個容器裡邊能夠裝什麼,完全取決於這個容器的定義。

然而現在我們討論的是另外一種容器,它儲存的既不是文字、數值,而是物件、類別、介面透過這種容器,得以實現許多高階功能,最常用的就是程式碼之間的解耦、依賴注入。

那麼為什麼會存在兩個種概念,為什麼要說控制反轉和依賴注入呢!在上文也提到過,它們其實指的就是一種東西,只是描述的角度不同而已。

就跟你是爸爸的兒子,你還是你爺爺的孫子,不管兒子還是孫子都指的是一個人。只是站在不同的角度看問題而已。

控制反轉

是站在容器的角度看待問題,容器控制著應用程序,由容器反向的向應用程式註入應用程式所需的外部資源。

依賴注入

#

是站在應用程式的角度看待問題,應用程式依賴容器來創建並註入它所需的外部資源。

作用

主要用來減少程式碼之間的耦合程度。

有效的分離物件和應用程式所需的外部資源。

下面兩個幅圖就可以很清楚的說明問題

ThinkPHP容器之控制反轉與依賴注入ThinkPHP容器之控制反轉與依賴注入

#給大家整一個簡單的案例

#定義兩個類別分別為Person、Car,在Person裡實例並呼叫Car中的pay方法。

ThinkPHP容器之控制反轉與依賴注入然後在控制器中調用,而列印結果肯定就是Car返回的123,這就不去列印了。

ThinkPHP容器之控制反轉與依賴注入
在這裡插入圖片描述

那這個時候我們把程式碼修改一下,把Car類別直接傳給Person類,在Person類別中直接用傳過來的物件去呼叫對應的方法。

ThinkPHP容器之控制反轉與依賴注入這只是一個簡單的實作過程,為了為閱讀框架容器程式碼做一個鋪墊,在後文中會詳細說明框架中的容器注入。

堅持學習、堅持寫博、堅持分享是咔咔從業以來一直所秉持的信念。希望在偌大互聯網中咔咔的文章能帶給你一絲絲幫助。我是喀喀,下期見。

#

以上是ThinkPHP容器之控制反轉與依賴注入的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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