战略设计模式与国家设计模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了战略设计模式与国家设计模式相关的知识,希望对你有一定的参考价值。

我正在阅读关于州模式的link。它看起来像战略模式?这两种模式之间的确切区别是什么?

答案

国家与战略之间的区别在于意图。使用Strategy,算法的选择相当稳定。使用State,“context”对象状态的改变使其从Strategy对象的“调色板”中进行选择。

http://sourcemaking.com/design_patterns/state

另一答案

策略模式与State Pattern非常相似。其中一个区别是Context包含状态作为实例变量,并且可以有多个任务,其实现可以依赖于状态,而策略模式策略作为参数传递给方法,而上下文对象没有任何变量来存储它。

有关更多详细信息,请参阅Strategy design pattern in java example tutorial

另一答案

我认为一个主要区别是:

- 在State Pattern中,我们将上下文本身作为参数传递给我们需要分配给上下文的状态具体类的方法,并且它做两件事:首先它将自己分配给发送的上下文,其次,它执行它的角色。

- 在策略模式中,我们在第一次创建时将策略传递给上下文,因此它保持整个程序的原样,除非我们使用“new”将相同的变量分配给内存中的新上下文(指针)并且为它分配一个新的策略,一段时间后,垃圾收集器会用其分配的策略消除旧的上下文。

更清楚的是,策略是针对一个上下文修复的,一旦分配就无法更改,即使上下文没有策略设置器。但是对于State来说,许多州可以一个接一个地分配到同一个上下文,因为上下文有一个状态的setter。

我希望它有用。

另一答案

在国家模式中,通常国家的行为会导致国家的变化;在战略模式中,战略的行动不会导致战略的变化。换句话说,国家的变化在于国家本身;战略转变在于外部条件。

以上是关于战略设计模式与国家设计模式的主要内容,如果未能解决你的问题,请参考以下文章

德国 | 在市场营销设计和项目管理方面与品类合作伙伴合作,确保在公司战略目标的范围内,在模型层面实现利润最大化

国家发展智慧城市的8个战略

国家发展智慧城市的8个战略

国家发展智慧城市的8个战略

DKhadoop大数据系统架构设计方案

DKhadoop大数据基础架构设计方案