Demo中的IOC自定義實現

2022-03-28 05:01:19 字數 1956 閱讀 5100

在做練習的時候,小小專案,使用ioc控制項覺得麻煩,使用工廠覺得不高大上啊,自己寫個簡陋的依賴注入ioc吧;

控制反轉(ioc)是管理對映依賴的的,是依賴倒置(dip)的實現方式;

依賴倒置(dip)是設計原則,控制反轉(ioc)是具體實現,依賴注入(di)是控制反轉的具體實現;

解決方案的目錄:

ioc 有3個類,乙個是用來儲存依賴關係的實體類(entityioc),乙個是儲存依賴關係的類(interviewsdependencyresolver),乙個是外部呼叫類(interviewsioc);

我理解的核心就是依賴關係.使用反射實現依賴倒置.

entityioc **:

/// 

/// 依賴注入實體

///

internal

class entityioc

public entityioc(string _namespace, string _fullname)

///

/// 程式集名稱

///

public

string namespace

///

/// 例項名(不包括命名空間)

///

public

string fullname

}

interviewsdependencyresolver **:

/// 

///容器

///

internal

class interviewsdependencyresolverwhere ientity : class

private

static dictionary_dictioc = new dictionary();

//private static dictionaryaccessdict = new dictionary();

public

static entityioc get()

return

null;

}///

/// 繫結

///

///

public

static

void to() where t : class

}///

/// 取消繫結

///

///

public

static

void uninstallto() where t : class}}

interviewsioc **:

/// 

/// 簡單ioc

///

public

class interviewsioc

///

/// 繫結

///

public

static

void bing()

///

/// 獲取依賴中具體實現

///

///

///

public

static ientity loadinstance() where ientity : class

catch (exception ex)

}return resultentity;}}

程式使用:

自定義乙個IOC框架

要實現的功能 將物件的例項化交給自定的ioc容器.通過註解的方式對介面進行依賴注入 通過getbean username 方法那到物件,使用物件的方法 建立自定義的註解 定義乙個介面,用來獲取bean物件的方法 執行main 結果 testservice instance 介面實現類的初始化 use...

angularjs自定義過濾器demo

這個基於angularjs的過濾器是最近做的 資訊管理學院實驗室預約 專案中的乙個小功能。以下為資料 scope classes 具體功能 分別在兩個select選擇星期和課次,列表會即時根據條件更新。完整 周一周二 週三周四 周五 1 2 1 2 3 3 41 2 3 4 5 67 8 假資料 s...

QT 自定義Model及相關demo

隨著開發專案的不斷增大,業務結構越來越複雜,為了提高程式設計師的開發效率和降低維護成本 的可讀性 在qt中使用mvc mvd 模式是行之有效的方法。而自定義model則是使用mvc模式的第一步。qt給我們預定義了許多model,view和delegate,也就是說我們可以很方便快速的繼承相應的類完成...