我需要一个框架来使用依赖项注入吗
Do I need a framework to use dependency injection?
我想开始在C++中练习依赖项注入,以使我的代码更具可测试性,但经过一些谷歌搜索,我发现一些文章说我必须使用一些框架进行依赖项注入。是这样吗?为什么需要这样一个框架?为什么我不能通过子类化和通过引用或指针在构造函数中传递依赖项,或者通过传递我想用作依赖项的类作为模板参数来注入依赖项?
依赖注入是一种软件设计模式,它允许您避免对具体类的依赖。依赖关系容器负责创建对象,并将依赖关系传递/注入到依赖对象中。如果使用DI容器,则应用程序将组成对象图的责任委托给一个单独的服务。它提供了以一致的方式创建应用程序的基础设施,并强制执行约定(尤其是当您希望在不同的项目/团队中重用它并强制使用一致的方式来构建对象图时)。
穷人的DI(例如构造函数注入:通过引用将参数传递给构造函数)是进行依赖注入的有效方法。
//编辑:DI容器还管理对象/服务的生命周期。
相关文章:
- 如何在不诉诸依赖注入的情况下模拟遗留函数?
- 正确构造和销毁 Setter 依赖注入对象(可能使用 qt)
- 依赖注入:依赖关系需求字段/成员
- 模板或链接接缝依赖注入有哪些替代方案来测试非虚拟方法?
- 类型擦除代码的依赖注入单元测试
- 包装类设计和依赖注入
- 在进行依赖注入时公开私有方法
- 有趣的C++依赖注入方案
- 使用X3对解析器的依赖注入
- 我如何使用Gmock进行依赖注入
- 重构Singleton/Globals以使用依赖注入进行单元测试
- 依赖注入/继承设计模式的构造函数参数太多
- 依赖注入 + 完全虚拟与接口
- 依赖注入,unique_ptr模拟
- 构造函数依赖注入:unique_ptr + move vs shared_ptr
- 为什么更喜欢模板方法而不是依赖注入
- c++依赖注入:对象生命周期
- 我可以在依赖注入中使用std::unique_ptr吗?
- 工厂类的依赖注入
- c++依赖注入+得墨忒耳定律+ logger/assert