7

在网络编程中,您需要具有多个层次深度的状态机。

State Machine 1
     State Machine 2

     State Machine 3
          State Machine 4

这里状态机1包含两个状态机23. 3还包含一台机器4

根据外部机器的状态,消息应该通过内部状态机。此外,如果内部状态机存在一些错误,则应将反馈提供给上层机器。

有没有好的方法来做到这一点?

现在我有一堆 if 语句和标志可以为我做这件事。我一直面临一些问题,即由于状态机的整个状态处于不可恢复状态而未设置某些标志。

更新: 我试图保持状态和机器静态。由于请求将通过机器和状态,请求本身将存储所需的所有元数据。在这种情况下,正常的状态机模式没有帮助。

4

1 回答 1

0

State Pattern将 state 和Context分开。上下文可以存储状态的层次结构,而状态子类本身不知道这种层次结构。所有的 if 语句都消失了,因为 if 下的每个部分都进入了一个单独的状态子类。

于 2012-12-08T17:28:55.587 回答