[Java] 状态机是什么?

[Java] 状态机是什么? 在软件工程和系统设计中状态机全称有限状态机Finite State Machine,简称FSM是一种数学模型用于设计和管理具有生命周期的实体在不同状态之间的演进规则。简单来说状态机规定了一个对象当前处于什么状态在遇到什么事件时允许或禁止跳转到什么新状态以及跳转时要执行什么操作。状态机组成要素以真实电商系统为例。一个完整的状态机包含四个核心要素1. 状态State实体所处的特定阶段。例如 已创建 (S0) 、 末端派送(S7) 、 已签收 (S8) 等。在任一时刻实体只能处于这其中的某一个状态。2. 事件Event触发状态改变的外部动作或信号。例如 SIGNED签收、 EXCEPTION 发生异常。3. 转换规则Transition状态变更的合法通路。比如只允许从 末端派送(S7) 跃迁到 已签收 (S8) 如果尝试直接从 微仓收货 (S2) 跃迁到已签收 (S8) 状态机就会拦截并报错。4.动作Action状态转换成功后系统需要执行的业务逻辑。例如记录日志轨迹、触发财务分账、发送签收通知。