设计模式 – 带记忆的状态模式

设计模式 – 带记忆的状态模式,第1张

概述我在普通的状态机中使用State Pattern.我希望能够从[A – >; B],[B – > C]和[A – > C]. 现在我们的域名有一个新规则,现在我需要从[C – > A]也是,但前提是我从未进入过B. 所以我们有记忆的状态.有两种可能的解决方案: >创建一个新的状态CB,其意思是B之后的C,并具有这些规则[A – > B],[B – > CB],[A – > C],[C – >一个] 我在普通的状态机中使用State Pattern.我希望能够从[A – >; B],[B – > C]和[A – > C].
现在我们的域名有一个新规则,现在我需要从[C – > A]也是,但前提是我从未进入过B.
所以我们有记忆的状态.有两种可能的解决方案:

>创建一个新的状态CB,其意思是B之后的C,并具有这些规则[A – > B],[B – > CB],[A – > C],[C – >一个]
>使用我们的Context有一个包含先前状态的列表(让我们称之为StateHistoric)和转换的日期(状态历史也是我们客户的域要求)的事实,然后使用这些规则[A – > B],[B – > C],[C – > A如果B不在Context.StateHistoric中.

哪两个是更正确的状态模式使用内存的方式? (或这些2的另一种选择)

谢谢

解决方法 去寻找第二个解决方案.它更容易理解,更容易扩展.

不要因为它的名字听起来与你喜欢的名字相似而烦恼地坚持设计模式.

总结

以上是内存溢出为你收集整理的设计模式 – 带记忆的状态模式全部内容,希望文章能够帮你解决设计模式 – 带记忆的状态模式所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1071534.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存