【发布时间】:2019-12-30 20:58:42
【问题描述】:
我正在研究创建一个非常简单的状态机。我的状态机将包含以下 3 个状态:
public enum States {
PENDING,
ACTIVE,
DONE
}
这里可能有多种转换+开始状态,具体来说:
初始状态:PENDING or ACTIVE
过渡:
PENDING -> ACTIVEPENDING -> DONEACTIVE -> DONE
我正在研究表示这些状态的方法以及一种可能的状态机来控制转换。我研究了一种基于枚举的方法,例如this one,但我也想向客户端公开状态转换,我不确定这在这种方法中是否合理。
我还查看了其他技术,例如State Pattern,但感觉对于这样一个简单的问题来说这可能是多余的。
对于满足此标准的简单状态机实现,是否有人有任何建议?我什至在想一些基本的东西,比如使用转换表来存储转换并在其中封装一个状态概念,该概念将使用转换表来确定下一个可能的状态。
【问题讨论】:
-
可以使用spring-state-machine projects.spring.io/spring-statemachine 非常简洁好用
标签: java state state-machine state-pattern