【发布时间】:2011-12-14 00:22:24
【问题描述】:
我是 C# 中状态模式实现的新手,您能否提供一些有关如何实现它的信息。
我正在使用状态模式在 C# 中重构状态机。目前我的状态机包含 5 个状态,并且只能在状态中前进或后退,即从状态 1 你需要去状态 2、3 和 4 最终到达状态 5。
我可以继续前进
mainclass.State = new NextSate();
每次您想前进时都会创建一个新状态,但是,一旦所有这些都已创建和/或您想后退,我将需要进入相同的状态,而不仅仅是一个新状态。我怎样才能做到这一点?有没有更好的简单方法?
【问题讨论】:
-
只需将每个状态存储在内部堆栈中,然后当您想返回时弹出堆栈并将其分配给当前状态
-
转换是从状态 1 向后还是从状态 5 向前存在?这些无效转换是否会引发异常,或者您是否希望状态转换形成闭环(即从状态 5 向前带您到状态 1,从状态 1 向后带您到状态 5)?
标签: c# design-patterns fsm state-pattern memento