1.状态机及状态机思想
状态机是有限状态自动机的简称,是现实事物运行规则抽象而成的一个数学模型。
先来解释什么是“状态”(State)。现实事物是有不同状态的,通常所说的状态机是有限状态机,也就是被描述的事物的状态的数量是有限个,例如一件事情有开始、运行和结束;事情由开始、运行到结束变换。
状态机,也就是 State Machine ,不是指一台实际机器,而是指一个数学模型。说白了,一般就是指一张状态转换图。
状态机由几个元素组成:
第一个是 State ,状态。一个状态机至少要包含两个状态。
第二个是 Event ,事件。事件就是执行某个操作的触发条件或者口令。
第三个是 Action ,动作。事件发生以后要执行动作.编程的时候,一个 Action 一般就对应一个函数。
第四个是 Transition ,变换。也就是从一个状态变化为另一个状态。例如“开门过程”就是一个变换。
状态机思想是计算机科学中重要思想,状态机思想在计算机研发中应用很广泛。跟状态机类似的概念还有图灵机,图灵机就是计算机底层采用的计算模型。
2.状态机思想在程序设计中的运用
一般来说,计算机的状态机,可以用枚举值进行定义。
enum State
{
Init = 0,
Running,
Pause,
Stop, //Stop即初始
};
定义状态以后,进设置Action和Event设置(Action和Event需要对应),即可设置状态机变换,从而让程序运行到合理状态。