状态机是一种数学模型,对于我们业务实现有很大的帮助。
我们可以用非常多的方法实现状态机,比如用茫茫多的if-else来进行条件判断,但是这种原始的方法并不够优雅,这篇文章就来介绍一个状态机优雅的实现方法。
话不多说,直接进入正题。
假设我们有两个状态
这个状态转换非常简单,我们来试着用java实现一下
程序结构如下图
我们先来介绍一下状态的表示
public class StateTransaction {
// 当前状态
private StateEnum currentState;
// 相对应动作
private ActionEnum action;
// 下一个状态
private StateEnum nextState;
// 相应事件
private Event event;
public StateTransaction() {
}
public StateEnum getCurrentState() {
return currentState;
}
public ActionEnum getAction() {
return action;
}
public StateEnum getNextState(