控制反轉 IoC 與依賴注入 DI

2021-06-29 01:56:47 字數 1167 閱讀 7448

最近幾天在 研究容器。發現有幾個理念需要理一下。細一看,又發現根本就是我們之前學過的東西。控制反轉(ioc)與依賴注入(di)。這兩個概念有很多相同的內容,只不過是側重不相同。

控制反轉

控制反轉(inversion of control,英文縮寫為ioc)是乙個重要的物件導向程式設計的法則來削減電腦程式的耦合問題,也是輕量級的spring框架的核心。就是由容器控制程式之間的關係,而非傳統實現中,由程式**直接操控。

更通俗的說,就是本來你該做的事情 你不去做了 讓系統去做。

我們舉乙個例子來說明,皇上生病了傳御醫。以前的做法是,皇上想叫哪乙個大臣直接傳旨召xx御醫。而現在的做法就是這之間有了乙個愛妃團。皇上只告訴愛妃團召御醫。但是具體召哪乙個御醫,是由娘娘團決定的。很明顯,整個事件的控制權掌握在了娘娘團手裡。也就是我們說的控制反轉(ico)。

demo

①皇上直接傳御醫

namespace  demofactory

public class doctor : idoctor

}}namespace springnewioc

}}

這樣的話,我們通過「idoctor doc=new idoctor() 「   可知皇上一定要知道具體某個御醫。

②皇上通過愛妃團傳御醫。

namespace daofactory

}namespace springnetioc

}

}}

有人說它是一種概念,也有人認為是一種設計模式。

那麼依賴注入是什麼意思呢?還是皇上通過娘娘叫御醫。對愛妃團來說,她們把御醫帶給皇上。就相當於娘娘團把御醫「注入」給皇上。

說到這大家千萬不要覺得陌生,我們之前在設計模式的時候,這些都是已經接觸過的。其實我上面寫的demo 就是之前學過的乙個簡單的工廠方法而已。

此外,看網上的部落格,他們實現ioc是通過配置檔案來實現的。如下

private static void iocmethod()

}

說到這裡,像我們的模板方法等等也有這些原理的應用。接下來開始深入的學習,請多指教。

Ioc控制反轉與DI依賴注入

ioc inversion of control 將原先類產生的例項轉移到spring容器中 一 控制反 1.是一種設計思想 將設計好的物件交給容器控制,而不是傳統的在你的物件內部直接控制。2.主要控制了外部資源獲取 不只是物件,包括檔案等 3.傳統應用程式是由我們自己在物件中主動控制直接獲取依賴物...

控制反轉(IoC)與依賴注入(DI)

關於spring控制反轉和依賴注入的文章 書籍很多,大家對其解釋也仁者見仁,這裡就不贅述了。下面我用通俗的例子和平實話語談一談自己的理解,希望對您有所幫助。控制反轉 ioc inverse of control 應用程式 呼叫者 本身不負責依賴物件 被呼叫者 的建立和維護,而是由外部容器負責建立組裝...

控制反轉 IOC 和依賴注入 DI

控制反 從拆解字面上的意思,控制,是指物件建立 銷毀和管理 單例 的控制權,傳統程式設計上這個是交給呼叫方來控制。反轉,是指這些控制權優傳統上的呼叫方反轉為類似乙個容器的東西,統一調配和管理。依賴注入 依賴,其實就是耦合,這裡更多的是呼叫方和操作物件的耦合。注入是指,將某些耦合關係從乙個東西注入到另...