0
什麼是最常見的使用結實的nugetpackage /庫/框架的C++,幾乎相同的微軟稱爲Unity的C#庫:http://unity.codeplex.com/?IoC和Factory for C++ - 替代Microsoft Unity for c#
最後的結果看起來像這樣:
class IProjectRepository
{
public:
vector<Project> GetProjects() = 0;
}
class XMLProjectRepository : IProjectRepository
{
public:
vector<Project> GetProjects()
{
return // implementation
}
}
class Application
{
public:
Application(shared_ptr<IProjectRepository> projectRepository)
// Or however this would look...
// projectRepository would be an instance of whatever i have registered (see below)
{
auto projects = this.projectRepository.GetProjects();
}
}
而在一些啓動區域,我會結合這樣的:
BinderFramework::Register<IProjectRepository, XMLProjectRepository>();What is the most common use sturdy nuget package/library for C++ that does pretty much the same as the C# library by Microsoft called Unity: http://unity.codeplex.com/
我一直在尋找了一段時間了,但不能完全找到一個不錯的完整和簡單的解決方案。
這個想法是使用一個衆所周知的框架,而不是寫我自己的片狀代碼。
有C++的IoC庫,但最好先從[Pure DI]開始(http://blog.ploeh.dk/2014/06/10/pure-di/)(這意味着沒有庫的依賴注入),並轉向使用工具,如果它已被證明是有效的。 – Steven
這是必需的,因爲我正在製作一個多平臺解決方案。我的核心應用程序代碼需要與接口一起工作......另外,我還將能夠測試東西。 – Jimmyt1988
是的,你想要應用依賴注入模式並堅持依賴倒置原則。但這些只是模式和原則。您不需要使用這些模式的工具。請閱讀[本文](http://blog.ploeh.dk/2014/06/10/pure-di/)。 – Steven