设计模式 – 战略模式和依赖注入有什么区别?

策略模式和依赖注入都允许我们在运行时设置/注入对象。策略模式和依赖注入有什么区别?
DI和策略以相同的方式工作,但是策略用于更细粒度和短暂的依赖。

当对象配置有“固定”策略时,例如当对象被构造时,Strategy和DI之间的区别模糊。但在DI情况下,更常见的是对象的依赖性在其生命周期中改变,而这在战略中并不少见。

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

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

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

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...