C 九陰真經之控制反轉 Ioc

2021-10-07 04:10:36 字數 1284 閱讀 1762

控制反轉(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...