其實這倆個就是指的一個東西,就是一種編程思想而已,不要想的那么難以理解和高大上。
那么什么是容器,容器直面理解就是裝東西的東西。在編程中,我們常見的變量、對象屬性都是一個容器。一個容器里邊能夠裝什么,完全取決于對該容器的定義。
然而現(xiàn)在我們討論的是另外一種容器,它存儲的既不是文本、數(shù)值,而是對象、類、接口通過這種容器,我的得以實現(xiàn)很多高級功能,最常用的就是代碼之間的解耦、依賴注入。
那么為什么會存在倆種概念,為什么要說控制反轉(zhuǎn)和依賴注入呢!在上文也提到過,它們其實指的就是一種東西,只是描述的角度不同而已。
就跟你是爸爸的兒子,你還是你爺爺?shù)膶O子,不管兒子還是孫子都指的是一個人。只是站在不同的角度看待問題而已。
「控制反轉(zhuǎn)」
是站在容器的角度看待問題,容器控制著應(yīng)用程序,由容器反向的向應(yīng)用程序注入應(yīng)用程序需要的外部資源。
「依賴注入」
是站在應(yīng)用程序的角度看待問題,應(yīng)用程序依賴容器創(chuàng)建并注入它所需要的外部資源。
「作用」
主要用來減少代碼之間的耦合程度。
有效的分離對象和應(yīng)用程序所需要的外部資源。
下面?zhèn)z幅圖就可以很清晰的說明問題
「給大家整一個簡單的案例」
定義倆個類分別為Person、Car,在Person中實例并調(diào)用Car中的pay方法。
然后在控制器中調(diào)用,并且打印結(jié)果肯定就是Car返回的123,這個就不去打印了。

那這個時候我們把代碼修改一下,把Car類直接傳給Person類,在Person類中直接用傳過來的對象去調(diào)用對應(yīng)的方法。
這只是一個簡單的實現(xiàn)過程,為了給閱讀框架容器代碼做一個鋪墊,在后文中會詳細說明框架中的容器注入。
?
堅持學(xué)習(xí)、堅持寫博、堅持分享是咔咔從業(yè)以來一直所秉持的信念。希望在偌大互聯(lián)網(wǎng)中咔咔的文章能帶給你一絲絲幫助。我是咔咔,下期見。
?