状态机,也就是 State Machine ,不是指一台实际机器,而是指一个数学模型 。说白了,就是指一张状态转换图。 状态机是状态模式的一种应用,相当于上下文角色的一个升级版。在工作流或游戏等各种系统中有大量使用,如各种工作流引擎,它几乎是状态机的子集和实现,封装状态的变化规则。
状态机应当具备以下几个要素:
- 状态(State):定义系统可以存在的各个状态。如订单的不同阶段(待支付、已支付、已发货、已完成等)。
- 事件(Event):触发状态变迁的动作或者条件。如支付按钮引发的支付事件
- 转换(Transition):定义状态之间的转换规则。
- 动作(Action):在状态转换时执行的动作。如状态切换时更新数据库记录,发送通知和邮件等
1 示例Demo
参考文档
https://www.springref.com/docs/spring-statemachine