Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C+的IoC和工厂+;-Microsoft Unity for c的替代方案# P>最常用的C++ NuGePuth/Labor框架/框架与微软的C语言库几乎相同,称为Unity:_C++_Inversion Of Control_Factory - Fatal编程技术网

C+的IoC和工厂+;-Microsoft Unity for c的替代方案# P>最常用的C++ NuGePuth/Labor框架/框架与微软的C语言库几乎相同,称为Unity:

C+的IoC和工厂+;-Microsoft Unity for c的替代方案# P>最常用的C++ NuGePuth/Labor框架/框架与微软的C语言库几乎相同,称为Unity:,c++,inversion-of-control,factory,C++,Inversion Of Control,Factory,最终结果看起来像这样: class IProjectRepository { public: vector<Project> GetProjects() = 0; } class XMLProjectRepository : IProjectRepository { public: vector<Project> GetProjects() { return // implementation } } class App

最终结果看起来像这样:

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();
    }
}
类IProjectRepository
{
公众:
向量GetProjects()=0;
}
类XMLProjectRepository:IProjectRepository
{
公众:
向量GetProjects()
{
return//实现
}
}
班级申请
{
公众:
应用程序(共享项目存储库)
//或者不管这看起来如何。。。
//projectRepository将是我已注册的任何内容的实例(见下文)
{
自动项目=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/
BinderFramework::Register();对于C++来说,最常用的健壮NuGuePo/库是与微软称为Unity的C?http://unity.codeplex.com/
我已经找了一段时间了,但是找不到一个完整而简单的解决方案


这个想法是使用一个众所周知的框架,而不是编写我自己的代码。

我可能会晚一点,但你应该看看


它只是一个标题,它附带了一个非常酷的Dsl,加上它已经在生产环境中使用了多年。

我可能有点晚了,但你应该看看


它只是一个标题,它附带了一个非常酷的Dsl,加上它已经在生产环境中使用了多年。

我可能有点晚了,但你应该看看


它只是一个标题,它附带了一个非常酷的Dsl,加上它已经在生产环境中使用了多年。

我可能有点晚了,但你应该看看


只是头,它有一个很酷的DSL加,它在生产环境中已经使用了很多年。

有C++的IOC库,但是最好是从(没有库的依赖注入)开始,如果它被证明是有效的,就移动到一个工具上。这是需要的,因为我正在做一个多平台的解决方案。我的核心应用程序代码需要使用接口。。。另外,我还将能够测试一些东西。是的,您希望应用依赖注入模式并坚持依赖反转原则。但这些只是模式和原则。使用这些模式不需要工具。请阅读。有C++的IOC库,但最好是从(没有库的依赖注入)开始,如果它被证明是有效的,就移动到一个工具。这是需要的,因为我正在做一个多平台的解决方案。我的核心应用程序代码需要使用接口。。。另外,我还将能够测试一些东西。是的,您希望应用依赖注入模式并坚持依赖反转原则。但这些只是模式和原则。使用这些模式不需要工具。请阅读。有C++的IOC库,但最好是从(没有库的依赖注入)开始,如果它被证明是有效的,就移动到一个工具。这是需要的,因为我正在做一个多平台的解决方案。我的核心应用程序代码需要使用接口。。。另外,我还将能够测试一些东西。是的,您希望应用依赖注入模式并坚持依赖反转原则。但这些只是模式和原则。使用这些模式不需要工具。请阅读。有C++的IOC库,但最好是从(没有库的依赖注入)开始,如果它被证明是有效的,就移动到一个工具。这是需要的,因为我正在做一个多平台的解决方案。我的核心应用程序代码需要使用接口。。。另外,我还将能够测试一些东西。是的,您希望应用依赖注入模式并坚持依赖反转原则。但这些只是模式和原则。使用这些模式不需要工具。请阅读。