用查表法来实现有限状态机的状态转移id
<!-- more -->
## 关键词
| 分类 | 关键词 | 说明 |
| ---- | ------------------- | ---------- |
| 核心角色 | State | 状态接口/抽象类 |
| | ConcreteState | 具体状态实现 |
| | Context | 上下文,维护当前状态 |
| | StateMachine | 状态机,管理状态转换 |
| | Transition | 状态转换 |
| 状态管理 | InitialState | 初始状态 |
| | FinalState | 终止状态 |
| | CurrentState | 当前状态 |
| | PreviousState | 前一个状态 |
| | NextState | 下一个状态 |
| 转换控制 | ChangeState | 改变状态的方法 |
| | TransitionTo | 转换到指定状态 |
| | AllowTransition | 允许的状态转换 |
| | Guard | 状态转换守卫条件 |
| | Trigger | 触发状态转换的事件 |
| 状态类型 | Simple State | 简单状态 |
| | Composite State | 组合状态 |
| | Hierarchical State | 层次状态 |
| | Parallel State | 并行状态 |
| | History State | 历史状态 |
| 实现方式 | Enum Based | 基于枚举实现 |
| | Event Driven | 事件驱动实现 |
| | Table Driven | 表驱动实现 |
| | Rule Engine | 规则引擎实现 |
| | FSM | 有限状态机 |
| 状态行为 | Entry Action | 进入状态动作 |
| | Exit Action | 退出状态动作 |
| | Do Action | 状态内动作 |
| | Transition Action | 转换时动作 |
| | Event Handler | 事件处理器 |
| 持久化 | State Storage | 状态存储 |
| | State Recovery | 状态恢复 |
| | State Snapshot | 状态快照 |
| | State History | 状态历史记录 |
| | State Serialization | 状态序列化 |
| 调试特性 | State Logging | 状态日志 |
| | State Visualization | 状态可视化 |
| | State Monitoring | 状态监控 |
| | Debugging Tools | 调试工具支持 |
| 高级特性 | State Machine DSL | 状态机领域语言 |
| | Visual Editor | 可视化编辑器 |
| | Code Generation | 代码生成 |
| | Hot Reload | 热重载支持 |
## 场景

## 实现
**用查表法来实现有限状态机的状态转移**
什么是状态机?
- 图论中的概念,本质是一张图结构
为啥叫有限状态机?
- 无限状态机只是一个理论概念
- 有限状态机由 3 个部分组成:状态、事件、动作。其中,事件也称为转移条件。事件触发状态的转移及动作的执行。不过,动作不是必须的,也可能只转移状态,不执行任何动作。
什么是查表法?
- 通过一张表把状态转移图落实到表上,表在 Java 中用 Map<K, Map>的数据结构就可以实现
| 当前状态 | 事件 | 目标状态 |
| --------- | ---- | -------- |
| 离线,修改中 | 上线操作 | 离线,上线审核中 |
| 离线,修改中 | 修改 | 离线,修改中 |
| 离线,上线审核中 | 审核通过 | 在线,审核通过 |
| 离线,上线审核中 | 审核驳回 | 离线,审核驳回 |
| 离线,审核驳回 | 修改 | 离线,修改中 |
| 离线,审核驳回 | 上线操作 | 离线,上线审核中 |
| 离线,审核通过 | 修改 | 离线,修改中 |
| 离线,审核通过 | 上线操作 | 离线,上线审核中 |
| 在线,审核通过 | 下线操作 | 在线,下线审核中 |
| 在线,下线审核中 | 审核通过 | 离线,审核通过 |
| 在线,下线审核中 | 审核驳回 | 在线,审核驳回 |
| 在线,审核驳回 | 修改 | 在线,修改中 |
| 在线,审核驳回 | 下线 | 在线,下线审核中 |
| 在线,修改中 | 修改 | 在线,修改中 |
| 在线,修改中 | 上线申请 | 在线,上线审核中 |
| 在线,上线审核中 | 审核通过 | 在线,审核通过 |
| 在线,上线审核中 | 审核驳回 | 在线,审核驳回 |
| 在线,审核通过 | 修改操作 | 在线,修改中 |
| 在线,修改中 | 下线 | 在线,下线审核中 |
| 在线,上线审核通过 | 下线 | 在线,下线审核中 |


