-
簡而言之,1.它的控制不是反**的,即當A需要B時,A會從B中去新建,然後加到A上。
2.控制是系統知道A需要B,會提前把B給A,A不需要再要求。
它的特殊性,如果你做了春天,你就會知道它,一旦你做了它,你就會知道它。
-
控制反轉 IOC 也稱為 DI(依賴注入)。
根據您的需要提供您想要的。 能夠控制物件的生成和解耦。
-
解耦,效果好,使用後重量從未**過。
-
讓我們從乙個例子開始:
例如,如果我們需要使用另乙個類 B 的方法,我們需要在 A 中例項化 B,然後呼叫 B 的方法。 **下面:
class a
比方說,我們還有 C 類、D 類等。 它們都需要使用方法 B,並且需要例項化方法 B,然後呼叫方法 B。 如果 b 的例項化是系統的乙個非常耗費資源的過程,例如資料庫連線等。
這樣一來,每當乙個類需要呼叫 b 的方法時,就需要例項化 b 一次,這將是乙個非常耗費資源的過程。
這在 Spring 框架中是如何工作的?
Spring 框架控制反轉我是這樣理解的,每次我們使用 Spring 框架的時候,我們都不想在單例項模式下配置 XML 檔案、XML 配置 Bean 和預設 Bean 的 ID,並且通過 Bean 類,通過反射機制可以建立這個例項,因此,Spring 框架通過反射為我們建立例項,並為我們維護它們。 A 需要引用類 B,在 XML 中,我們通過建構函式或屬性將 B 注入到 A 中,這實際上是 Spring 框架,它將 B 例項的引用傳遞給 A 的成員變數。
看完上面的內容,你就會明白,之前你需要負責在A類中建立乙個B的例項,現在把建立工作交給Spring框架,然後Spring框架類注入對例項的引用。 建立物件的責任轉移,即我們所理解的控制權的逆轉。 同時,Spring 為我們維護了乙個 B 例項,所以在需要引用新類的時候,我們不需要重複例項化 Class B,這也減少了系統資源的消耗。
-
這是控制反轉 (IOC):
1).IOC是Inversion of Control的縮寫,有時被翻譯為“控制倒置”,而另一些則被翻譯為“控制倒置”或“控制倒置”。
2).1996 年,Michael Matttson 在一篇關於物件導向框架的文章中首次引入了 IOC 的概念。 簡單來說,就是把乙個複雜的系統分解成相互配合的物件,這些物件類被封裝起來,使內部實現對外透明,從而降低了解決問題的複雜度,可以靈活地復用和擴充套件。
IOC理論提出,依賴物件與依賴物件的解耦是在“第三方”的幫助下實現的,如下圖所示