文章目录
1)什么是状态机?
状态机(State Machine)是有限状态自动机的简称,是现实事物运行规则抽象而成的一个数学模型。
简单来说,状态机其实就是状态转换图,可以很清晰地表达整个状态的流转。
- 如果流程围绕某个事物的状态变化进行,就该用到状态机图。
- 一个状态机图中只描述一个事物,该事物有多个状态,不同的动作作用到状态上导致状态的转换。
从PM的角度:状态机用来表示业务实体的全部状态以及相互间如何转移。
- 其中,业务实体是指客观上可以相互区分的事物,比如订单、优惠券、商品、活动……
1.1 四个要素
-
状态(state):
一个状态机至少要包含两个状态。- 例如,自动门有 open 和 closed 两个状态。
-
事件(event):
事件就是执行某个操作的触发条件或者口令。- 例如,对于自动门,“按下开门按钮”就是一个事件。
-
动作(Action):
事件发生以后要执行动作。- 例如事件是“按开门按钮”,动作是“开门”。
- 编程的时候,一个 Action 一般就对应一个函数。
-
变换(transaction):
从一个状态变化为另一个状态。- 例如,“开门过程”就是一个变换。
从PM的角度:状态机可归纳为4个要素,即现态、条件、动作、次态。
- 现态:是指当前所处的状态。
- 条件:又称为“事件”。
- 当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。
- 动作:条件满足后执行的动作,动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。
- 动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。
- 次态:条件满足后要迁往的新状态。
- “次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。
这样的归纳ÿ