在网络编程中,有些场景需要具有多个层次深度的状态机。
State Machine 1
State Machine 2
State Machine 3
State Machine 4在这里,状态机1包含两个状态机2和3。3还包含一个机器4。
根据外部机器的状态,消息应该通过内部状态机。此外,如果内部状态机中有一些错误,则应将反馈提供给上位机。
这样做有什么好办法吗?
现在,我有一大堆if声明和标志,为我做到了这一点。我一直面临一些问题,一些标志没有被设置,因为状态机的整个状态处于不可恢复的状态。
更新:,我试图保持状态和机器的静态。当请求通过机器和状态时,请求本身将存储所需的所有元数据。在这种情况下,正常的状态机模式没有帮助。
发布于 2012-12-08 17:28:55
状态模式分离状态和上下文。上下文可以存储状态的层次结构,状态子类本身也不知道这个层次结构。所有if语句都会消失,因为if下的每个部分都进入了一个单独的状态子类。
https://stackoverflow.com/questions/13778864
复制相似问题