gpt4 book ai didi

design-patterns - 策略模式和依赖注入(inject)有什么区别?

转载 作者:行者123 更新时间:2023-12-03 04:59:33 31 4
gpt4 key购买 nike

策略模式和依赖注入(inject)都允许我们在运行时设置/注入(inject)对象。策略模式和依赖注入(inject)有什么区别?

最佳答案

DI 和策略的工作方式相同,但策略用于更细粒度和短期的依赖关系。

当对象配置了“固定”策略时,例如构造对象时,策略和 DI 之间的区别就模糊了。但在 DI 场景中,对象的依赖关系在其生命周期内发生变化的情况更为罕见,而这对于策略来说并不罕见。

此外,您可以将策略作为参数传递给方法,而方法参数注入(inject)的相关概念并不广泛,并且主要仅在自动化测试的上下文中使用。

策略侧重于意图,并鼓励您使用遵守相同行为契约的不同实现来创建接口(interface)。 DI 更多的是实现某些行为并提供它。

使用 DI,您可以出于其他原因分解您的程序,而不仅仅是为了能够交换部分实现。 DI 中使用的接口(interface)只有一种实现是很常见的。只有一个具体实现(曾经)的“策略”并不是一个真正的问题,但可能更接近于 DI。

关于design-patterns - 策略模式和依赖注入(inject)有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4176520/

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