java - 多级和分层状态机的设计

标签 java design-patterns state-machine

网络编程中的某些场景需要具有多个层次深度的状态机。

State Machine 1
     State Machine 2

     State Machine 3
          State Machine 4

这里的状态机1包含两个状态机233 还包含一台机器 4

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

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

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

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

最佳答案

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

关于java - 多级和分层状态机的设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13778864/

相关文章:

oop - 替代(或改进)遭受 LSP 违规的状态模式

testing - 基于状态的测试(状态图)和转换序列

c - 在 C 中使用 GOTO 进行 FSM

c++ - C++ 的哪些状态机执行框架实现了 UML 语义?

java - 以下插入排序实现之间的区别

java - 从 XML 映射到不匹配的 POJO 的最佳方式

java - Grails 上的 OAuth 2 和 Scribe

java - 在 BufferedImage 上渲染字符串时出现问题

java - 关于使用断言删除生产中 Java 代码部分的建议

java - Java 如何在幕后为字符串实现享元模式?