首页 理论教育状态机设计模式:控制状态、触发事件、执行动作

状态机设计模式:控制状态、触发事件、执行动作

【摘要】:状态机具有三个基本的要求:状态、事件和动作。2)状态机在控制状态的同时,与各个状态对应的事件也会随之触发。3)动作是事件的相应,当一个事件发生时,状态机会决定应该执行什么样的动作,这主要取决于目前所处的状态和发生的事件。

绝大多数的测试系统在运行时需要从一个状态转换到另一个状态,或者在不同的状态之间互相切换,直至结束。因此状态机模式作为一种典型的类顺序结构方式,被广泛应用于各种自动化测试系统中。

状态机具有三个基本的要求:状态、事件和动作。任何一个状态机的执行都离不开以下这三个要素:

1)状态的选择是保证其他步骤有条不紊进行的前提,通常把程序需要经历的状态称为一个“状态序列”,它描述了程序当前的运行情况。在设计可交互式状态序列时,“等待”是一个必不可少的状态,因为常有一个状态需要等待用户“确认”,这个状态决定了下一个状态,这取决于与外部对象的交互。

2)状态机在控制状态的同时,与各个状态对应的事件也会随之触发。

3)动作是事件的相应,当一个事件发生时,状态机会决定应该执行什么样的动作,这主要取决于目前所处的状态和发生的事件。

一个简单的状态机框架如图5-1所示。

978-7-111-49442-3-Chapter05-1.jpg

图5-1 状态机框架

在While循环中加上一个条件结构就可以构成一个简单的状态机框架,其中循环主要用来使程序连续执行直到应用程序结束,条件结构允许程序员定义各种状态。条件结构的状态通常是由前一次迭代决定的,而位于其子框图中的代码则用于确定状态的变化及执行相应的任务。