gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 08:50:02 24 4
gpt4 key购买 nike

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

最佳答案

DI 和 Strategy 以相同的方式工作,但 Strategy 用于更细粒度和短暂的依赖关系。

当对象配置了“固定”策略时,例如在构造对象时,策略和 DI 之间的区别会变得模糊。但是在 DI 场景中,对象的依赖关系在其生命周期中发生变化是更不寻常的,而这在 Strategy 中并不少见。

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

策略侧重于意图,并鼓励您创建一个具有不同实现的接口(interface),这些实现遵循相同的行为契约。 DI 更多的是关于实现某些行为并提供它。

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

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

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