gpt4 book ai didi

oop - 在实现依赖注入(inject)的时候,应该注入(inject)异常吗?

转载 作者:行者123 更新时间:2023-12-04 01:58:01 28 4
gpt4 key购买 nike

我的团队正在使用自制的 DI 容器在 PHP 项目中实现依赖注入(inject)。我们对 DI 的第一次迭代可能被带到了极端,甚至将异常注入(inject)到依赖它们的类中。

这是一个好习惯还是矫枉过正?

最佳答案

依赖注入(inject)的目的是颠倒获取依赖关系的责任,这些依赖关系是对象用来促进配置或协作行为的协作者。

通常,异常(exception)是给定类的契约(Contract)所固有的。也就是说,异常是组件在发生故障时如何表现的隐式或显式契约的一部分,因此不适合用衍生工具切换出来。事件通常也没有行为,因此为了测试隔离而抽象它们也不是特别有值(value)。此外,由于事件通常只表示故障状态或事件,因此能够注入(inject)异常的派生也不是特别有值(value),因为组件的任何消费者都需要针对基本异常契约(Contract)进行编码(即任何附加属性都不会可见)。

您可能需要注入(inject)异常的一些正当理由,例如设计一个异常处理组件,该组件在记录、包装等之后重新抛出异常,或者异常的构造本身需要外部资源来实现(尽管这种需要本身会让我停下来),但总的来说,我不会说您应该将组件报告其故障状态的方式与组件本身分离。

关于oop - 在实现依赖注入(inject)的时候,应该注入(inject)异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3415823/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com