在做練習的時候,小小專案,使用ioc控制項覺得麻煩,使用工廠覺得不高大上啊,自己寫個簡陋的依賴注入ioc吧;
控制反轉(ioc)是管理對映依賴的的,是依賴倒置(dip)的實現方式;
依賴倒置(dip)是設計原則,控制反轉(ioc)是具體實現,依賴注入(di)是控制反轉的具體實現;
解決方案的目錄:
ioc 有3個類,乙個是用來儲存依賴關係的實體類(entityioc),乙個是儲存依賴關係的類(interviewsdependencyresolver),乙個是外部呼叫類(interviewsioc);
我理解的核心就是依賴關係.使用反射實現依賴倒置.
entityioc **:
///interviewsdependencyresolver **:/// 依賴注入實體
///
internal
class entityioc
public entityioc(string _namespace, string _fullname)
///
/// 程式集名稱
///
public
string namespace
///
/// 例項名(不包括命名空間)
///
public
string fullname
}
///interviewsioc **:///容器
///
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}}
////// 簡單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,也就是說我們可以很方便快速的繼承相應的類完成...