State-状态模式 ############## .. note:: allows an object to alter its behavior when its internal state changes. 状态机有 3 个组成部分:状态(State)、事件(Event)、动作(Action)。其中,事件也称为转移条件(Transition Condition)。事件触发状态的转移及动作的执行。 状态机实现方式:: 1. 分支逻辑法 利用 if-else 或者 switch-case 分支逻辑,参照状态转移图, 将每一个状态转移原模原样地直译成代码。 对于简单的状态机来说,这种实现方式最简单、最直接,是首选。 2. 查表法 对于状态很多、状态转移比较复杂的状态机来说,查表法比较合适。 通过二维数组来表示状态转移图,能极大地提高代码的可读性和可维护性。 3. 状态模式 对于状态并不多、状态转移也比较简单, 但事件触发执行的动作包含的业务逻辑可能比较复杂的状态机来说,我们首选这种实现方式。