依賴注入概念理解

2021-06-01 23:01:15 字數 981 閱讀 7913

對於spring,從學校到現在算起來雖然將近使用了有兩年,但對於「依賴注入」這一概念被猛然問起時,卻不知做如何解釋。幸運的是看到【spring框架,技術詳解及使用指導.pdf】這本電子書上做的解釋,感覺挺合理。這是文章中的原話

「從名字上理解,所謂依賴注入,即元件之間的依賴關係由容器在執行期決定,形象的來說,即由容器動態的將某種依賴關係注入到元件之中。」

膝上型電腦、行動硬碟、u盤。「三中裝置都有乙個共同點,都支援usb介面。當我們需要將資料複製到外圍儲存裝置時,可以根據情況,選擇是儲存在u盤還是usb硬碟。」

「膝上型電腦與外圍儲存裝置通過預先指定的乙個介面(usb)相連,對於筆記本而言,只是將使用者指定的資料傳送到usb介面,而這些資料何去何從,則由當前接入的usb裝置決定。在usb裝置載入之前,筆記本不可能預料使用者將在usb介面上接入何種裝置,只有usb裝置接入之後,這種裝置之間的依賴關係才開始形成。」

「對應上面關於依賴注入機制的描述,在執行時(系統開機,usb裝置載入)由容器(執行在筆記本中的windows作業系統)將依賴關係(筆記本依賴usb裝置進行資料訪問)注入到元件中(windows檔案訪問元件)」

就如上面所說的那樣,假使我們需要把行動硬碟(元件a)中的資料存放到u盤(元件b)中,我們會把行動硬碟(元件a)中的資料放入筆記本(容器),然後從筆記本(容器)中取資料,移動到u盤(元件b)中。這種依賴於容器來實現資料的訪問的做法,我想就是依賴注入的淺層解釋吧。

ioc還有另乙個稱呼,即hollywood原則(「don't call me, i'll call you」,即,請不要呼叫我,我將呼叫你)。通常,應用**需要告知容器或框架,讓它們找到自身所需要的類,然後再由應用**建立待使用的物件例項。因此,應用**在使用例項之前,需要建立物件例項。然而,ioc將建立物件例項的任務交給ioc容器或者框架(實現ioc設計模式的框架,有時候也稱為ioc容器),使得應用**只需要直接使用例項,這就是ioc.

通過使用ioc能夠降低元件之間的耦合度,最終,能夠提高類的重用性,更利於測試,而且整個產品或系統更利於整合和配置。

理解依賴注入(IOC)

ioc 英文全稱 inversion of control,中文名稱 控制反轉,它還有個名字叫依賴注入 dependency injection 作用 將各層的物件以松耦合的方式組織在一起,解耦,各層物件的呼叫完全面向介面。當系統重構的時候,的改寫量將大大減少。理解依賴注入 當乙個類的例項需要另乙個...

依賴注入的理解

依賴注入是什麼 spring官方參考文件上對依賴注入背後的基本原理描述 中文翻譯 依賴注入 di 背後的基本原理是物件之間的依賴關係 即一起工作的其它物件 只會通過以下幾種方式來實現 構造器的引數 工廠方法的引數,或給由建構函式或者工廠方法建立的物件設定屬性。因此,容器的工作就是建立bean時注入那...

理解php的依賴注入

用來減少 之間的耦合 有效分離物件和它所需的外部資源 示例現有person類和car類這兩個類 person類 namespace di class person car類 namespace di class car index呼叫person類的buy方法 public function per...