控制反轉(inversion of control,縮寫為ioc),是物件導向程式設計中的一種設計原則,可以用來減低計算機**之間的耦合度。其中最常見的方式叫做依賴注入(dependency injection,簡稱di),還有一種方式叫「依賴查詢」(dependency lookup)
實現**:
#include #include #include #include #include #include "anyval.h"
#include "noncopyable.h"
#include "singleton.h"
class ioccontainer : public noncopyable
~ioccontainer() {}
templatetypename std::enable_if::value>::type registertype(const std::string& strkey)
; registertype(strkey, function);
} templatetypename std::enable_if::value>::type registertype(const std::string& strkey)
; registertype(strkey, function);
} templatet* resolve(const std::string& strkey, args... args)
anyvar resolver = iter->second;
std::functionfunction = any_cast>(resolver);
return function(args...);
} templatestd::shared_ptrresolveshared(const std::string& strkey, args... args)
private:
void registertype(const std::string& strkey, anyvar constructor)
else
}private:
std::unordered_mapm_creatormap;
};typedef singletonioccontaineragent;
測試**:
class testbase
;class testioc : public testbase
void show()
};int main()
《九陰真經》正本
九陰真經 正本 北宋 黃裳 著 上捲 天之道,損有餘而補不足,地之道,損不足而補有餘,是故虛勝實,不足勝有餘。其意博,其理奧,其趣深,天地之象分,陰陽之候列,變化之由表,死生之兆彰,不謀而遺跡自同,勿約而幽明斯契,稽其言有微,驗之事不忒,誠可謂至道之宗,奉生之始矣。假若天機迅發,妙識玄通,成謀雖屬乎...
九陰真經原文
天之道,損有餘而補不足,是故虛勝實,不足勝有餘。其意博,其理奧,其趣深,天地之象分,陰陽之候列,變化之由表,死生之兆彰,不謀而遺跡自同,勿約而幽明斯契,稽其言有微,驗之事不忒,誠可謂至道之宗,奉生之始矣。假若天機迅發,妙識玄通,成謀雖屬乎生知,標格亦資於治訓,未嘗有行不由送,出不由產者亦。然刻意研精...
C 九陰真經之單例模式
單例類在日常開發中是非常常見的,用於管理一些配置資料及資源,提供全域性訪問。通過單例模式,可以做到 確保乙個類只有乙個例項被建立 提供了乙個對物件的全域性訪問指標 在不影響單例類的客戶端的情況下允許將來有多個例項 實現 單例 templateclass singleton public noncop...