IOC框架之 Unity 入門

2021-09-07 18:18:14 字數 1457 閱讀 3747

十年河東,十年河西,莫欺少年窮

學無止境,精益求精

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

}

public

class

filelogger : ilogger

}

step1. 建立物件容器

在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嗎?這個系列文章 雖然有點難,但...