我需要一个框架来使用依赖项注入吗

Do I need a framework to use dependency injection?

本文关键字:依赖 注入 框架 一个      更新时间:2023-10-16

我想开始在C++中练习依赖项注入,以使我的代码更具可测试性,但经过一些谷歌搜索,我发现一些文章说我必须使用一些框架进行依赖项注入。是这样吗?为什么需要这样一个框架?为什么我不能通过子类化和通过引用或指针在构造函数中传递依赖项,或者通过传递我想用作依赖项的类作为模板参数来注入依赖项?

依赖注入是一种软件设计模式,它允许您避免对具体类的依赖。依赖关系容器负责创建对象,并将依赖关系传递/注入到依赖对象中。如果使用DI容器,则应用程序将组成对象图的责任委托给一个单独的服务。它提供了以一致的方式创建应用程序的基础设施,并强制执行约定(尤其是当您希望在不同的项目/团队中重用它并强制使用一致的方式来构建对象图时)。

穷人的DI(例如构造函数注入:通过引用将参数传递给构造函数)是进行依赖注入的有效方法。

//编辑:DI容器还管理对象/服务的生命周期。