十年河東,十年河西,莫欺少年窮
學無止境,精益求精
unity是patterns & practices團隊開發的乙個輕量級、可擴充套件的依賴注入容器,具有如下的特性:
1. 它提供了建立(或者裝配)物件例項的機制,而這些物件例項可能還包含了其它被依賴的物件例項。
2. unity允許將預先配置的物件注入到類中,實現了inversion of control (ioc)的功能。在unity中,支援constructor injection(構造器注入), property setter injection(屬性設值注入)以及method call injection(方法注入)。ps:這裡的方法注入與martin fowler定義的介面注入類似而稍有區別。
3. 支援容器的體系結構。乙個容器可以有子容器,允許從子容器到父容器的物件定位查詢。
4. 可以通過配置檔案進行準備和配置容器。
5. 不會影響到類的定義(屬性設值注入和方法注入除外),這也是輕量級容器的乙個體現。
6. 支援自定義的容器擴充套件。
使用unity,最基本步驟有三步。
1. 建立容器;為了接下來的說明,我們先編寫幾個後面需要的介面和類:2. 將介面與類的對映註冊到容器中;
3. 從容器中解析出正確的物件。
準備工作:ilogger 介面
public繼承上述介面的子類inte***ce
ilogger
public及class
dblogger : ilogger
}
publicstep1. 建立物件容器class
filelogger : ilogger
}
在unity中建立容器例項最簡單的方法是直接使用建構函式建立,如下**所示:
iunitycontainer container = new unitycontainer();step2. 註冊介面對映
在unity中提供了一組register方法供我們在容器中註冊介面對映,如下**所示:
container.registertype();step3. 獲取物件例項
在unity中提供了一組resolve方法用以獲取物件例項,如下**所示:
var logger = container.resolve();ok,就這麼簡單!
測試如下:
class輸出如下:program
}
簡單的入門,不作過多闡述,
@陳臥龍的部落格
深入理解IOC模式及Unity框架
研究了下,有幾篇部落格確實已經說得很清楚了 1 ioc模式 2 深入理解dip ioc di以及ioc容器 這個算是最通俗易懂的,手動實現了ioc容器 由淺入深 3 理解依賴注入 ioc 和學習unity 這個也不錯,特別最後介紹的挺詳細 4 你真的了解ioc與aop嗎?這個系列文章 雖然有點難,但...
深入理解IOC模式及Unity框架
學習ioc發現如下部落格寫的很清楚了,故mark下來以便以後查閱和溫習!1 ioc模式 2 深入理解dip ioc di以及ioc容器 這個算是最通俗易懂的,手動實現了ioc容器 由淺入深 3 理解依賴注入 ioc 和學習unity 這個也不錯,特別最後介紹的挺詳細 4 你真的了解ioc與aop嗎?...
深入理解IOC模式及Unity框架
研究了下,有幾篇部落格確實已經說得很清楚了 1 ioc模式 2 深入理解dip ioc di以及ioc容器 這個算是最通俗易懂的,手動實現了ioc容器 由淺入深 3 理解依賴注入 ioc 和學習unity 這個也不錯,特別最後介紹的挺詳細 4 你真的了解ioc與aop嗎?這個系列文章 雖然有點難,但...