1. 概念

有限状态自动机(Finite State Machine,FSM)简称状态机。它是描述有限多个状态以及状态转移需要满足的条件和条件满足后触发的动作的数学模型。

状态机有四要素:

因此,现态和条件是因,动作和次态是果。


2. 状态机的表示方法 - 状态迁移图(STD)

状态迁移图是一种描述系统的状态以及相互转化关系的图形方式。下面是一个“工单”示例:

workorder.png

其中:


3. 状态机的表示方法 - 状态迁移表

状态迁移表用表格的形式表示状态之间的关系。下面是“工单”的示例的简化版:

gongdanzhuangtai.png


4. 注意事项

初学者往往将“程序动作”当作状态来处理,称之为“伪态”。另一个比较致命的错误是,在划分状态时,漏掉一些状态,称之为“漏态”。“动作”和“状态”的区别是,“动作”是不稳定的,执行完成即结束;“状态”是相对稳定的,如果没有外界条件触发,那么状态将一直持续下去。


5. 状态模式

状态模式允许对象在其内部状态发生改变时,改变其行为。状态模式中的角色包括: