在依赖注入中应对肿的构造函数 >过度复杂的构造函数,如此示例:
是一个常见的问题。 为什么不直接将容器(
<code>public MyClass(Container con, SomeClass1 obj1, SomeClass2 obj2, ... )</code>)直接注入每个类呢? 这大大简化了构造函数,但它具有重大的缺点。 从本质上讲,它将容器变成了一个光荣的静态工厂。
Container con
的问题 使用容器作为服务定位器使其表现得像全局静态访问点。这违反了单一责任原则,使测试和可维护性更加困难。 该类与容器的实现紧密耦合,阻碍了灵活性和可重复性。
> 与立面服务进行重构构建器注入的力量在于它强调违反单一责任原则的能力。 当构造函数变得笨拙时,这是重构的明显信号。 解决方案通常涉及创建立面服务。
外观服务引入了更高级别,更抽象的接口。该界面隐藏了与众多细粒依赖性相互作用的复杂性。 这可以促进清洁剂,更易于管理的代码并提高可检验性。
>以上是依赖注入:为什么不只是注入容器?的详细内容。更多信息请关注PHP中文网其他相关文章!