首页 >后端开发 >C++ >依赖注入:为什么不只是注入容器?

依赖注入:为什么不只是注入容器?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-28 14:56:10279浏览

Dependency Injection: Why Not Just Inject the Container?

在依赖注入中应对肿的构造函数 >过度复杂的构造函数,如此示例:

是一个常见的问题。 为什么不直接将容器(
<code>public MyClass(Container con, SomeClass1 obj1, SomeClass2 obj2, ... )</code>
)直接注入每个类呢? 这大大简化了构造函数,但它具有重大的缺点。 从本质上讲,它将容器变成了一个光荣的静态工厂。

Container con

荣耀的静态和控制反转(IOC)

的问题 使用容器作为服务定位器使其表现得像全局静态访问点。这违反了单一责任原则,使测试和可维护性更加困难。 该类与容器的实现紧密耦合,阻碍了灵活性和可重复性。

>

与立面服务进行重构

构建器注入的力量在于它强调违反单一责任原则的能力。 当构造函数变得笨拙时,这是重构的明显信号。 解决方案通常涉及创建立面服务。

外观服务引入了更高级别,更抽象的接口。该界面隐藏了与众多细粒依赖性相互作用的复杂性。 这可以促进清洁剂,更易于管理的代码并提高可检验性。

>

以上是依赖注入:为什么不只是注入容器?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn