IOC實際上就是爲了解耦,減小對象之間的依賴。
看下面的圖中代碼,clsCustomer類依賴clsAdderess類。這樣代碼會有一個問題,clsAdderess類改了代碼以後,clsCustomer類同樣需要重編譯。
解決這個問題,要引入接口對他們進行解耦。
比如 構造函數的方法
容器
實際上這就是mef模式的解決方法。
MEF(Managed
Extensibility Framework),在.net4.0後被正式引入.net framework中,通過簡單的附加Export,Import標籤,表明組件之間的“消費”和“提供”關係,MEF在底層動態的完成組件識別,裝配工作。簡單來說,就是一個製造器,把零散的零件放進去,自動構造機器。
引用:
http://www.codeproject.com/Articles/29271/Design-pattern-Inversion-of-control-and-Dependency
http://www.codeproject.com/Articles/188054/An-Introduction-to-Managed-Extensibility-Framework
http://www.cnblogs.com/Zhouyongh/archive/2011/04/22/2018989.html