IOC與依賴注入

2022-02-21 00:53:13 字數 1086 閱讀 9533

spring的核心思想是ioc和aop,ioc-控制反轉,是乙個重要的物件導向程式設計的法則來消減電腦程式的耦合問題,控制反轉一般分為兩種型別,依賴注入和依賴查詢,依賴什麼?為什麼需要依賴?注入什麼?控制什麼?依賴注入和控制反轉是一樣的概念嗎?

依賴注入和控制反轉,目的是為了使類與類之間解耦合,提高系統的可擴充套件性和可維護性。我們可以從以下幾個方面理解:

a、參與者都有誰?

b、依賴:誰依賴誰?為什麼需要依賴?

c、注入:誰注入誰?又注入了什麼呢?

d、控制反**誰控制誰?控制什麼?為什麼叫反轉呢?存在正轉嗎?

e、控制反轉和依賴注入是同乙個概念嗎?我們需要弄明白上面的問題,這樣對於控制反轉和依賴注入的理解有大大的幫助。

首先:第乙個問題,參與者都有誰?

1)物件

2)ioc/di容器

3)某個物件的外部資源

第二問題:依賴,誰依賴誰?為什麼需要依賴?

依賴嘛,很好理解的,物件依賴於ioc/di容器,至於為什麼要依賴呢?物件需要ioc/di容器來提供物件需要的外部資源。

第三個問題:注入,誰注入誰?又注入了什麼呢?

顯而易見是ioc/di容器注入物件,注入了what呢?肯定注入的是某個需要的東西那就是注入物件所需要的資源,肯定不會注入無關緊要的內容,你說呢?

第四個問題:控制反轉,誰控制誰?控制什麼?為什麼叫反轉呢?存在正轉嗎?

控制反轉,控制什麼?肯定是ioc/di容器控制物件,主要是控制物件例項的建立,反轉是相對於正向而言的,那麼什麼算是正向的呢?考慮一下常規情況下的應用程式,如果要在a裡面使用c,你會怎麼做呢?當然是直接去建立c的物件,也就是說,是在a類中主動去獲取所需要的外部資源c,這種情況被稱為正向的。那麼什麼是反向呢?就是a類不再主動去獲取c,而是被動等待,等待ioc/di的容器獲取乙個c的例項,然後反向的注入到a類中。

第五個問題:控制反轉和依賴注入式同乙個概念嗎?

依賴注入和控制反轉是對同一件事情的不同描述,從某個方面講,就是它們描述的角度不同。依賴注入是從應用程式的角度在描述,可以把依賴注入描述完整點:應用程式依賴容器建立並注入它所需要的外部資源;而控制反轉是從容器的角度在描述,描述完整點:容器控制應用程式,由容器反向的向應用程式注入應用程式所需要的外部資源。

ioc(依賴 依賴倒置 依賴注入)

先看一下這個大佬的部落格 我只是畫個圖 1.依賴 這個很不友好,要換別的player或者meidafile要動operation 2.依賴倒置 這個好很多了,加了兩個介面,要換別的player或者meidafile,不用動operation 3.ioc 控制反轉 控制權是我們使用者自己,如果是spr...

理解依賴注入(IOC)

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

IoC框架,依賴注入

ioc的機制是 處理類之間和介面之間或類與介面之間關聯關係,根據好萊塢原則,呼叫著與被呼叫者的主次關係,實現開關的原則.類之間可以很好 甚至 可以完全避免耦合,乙個類只負責自己邏輯功能 如果想呼叫其它類告訴ioc容器去做 一種比較好的方式是根據配置檔案來設定複雜關係 而不需要在 上過多的編寫.asp...