最近幾天在 研究容器。發現有幾個理念需要理一下。細一看,又發現根本就是我們之前學過的東西。控制反轉(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
控制反 從拆解字面上的意思,控制,是指物件建立 銷毀和管理 單例 的控制權,傳統程式設計上這個是交給呼叫方來控制。反轉,是指這些控制權優傳統上的呼叫方反轉為類似乙個容器的東西,統一調配和管理。依賴注入 依賴,其實就是耦合,這裡更多的是呼叫方和操作物件的耦合。注入是指,將某些耦合關係從乙個東西注入到另...