状态图首先说一下状态机,状态机是展示状态与状态转换的图,一个状态图表示一个状态机,主要用于表现从一个状态到另一个状态的控制流,说明事件如何随着时间的推移来影响这些状态。
1、状态
状态定义对象在其生命周期中的条件或状况,在此期间,对象满足某些条件,执行某些操作或等待事件,状态用于对实体在其生命中状况建模。
通常用一个圆角矩形表示
2、转换
转换包括事件和动作,事件是发生在时间空间上的一点值得注意的事情,动作是原子性的,他通常表示一个简短的计算过程。
状态包括:
——名字
状态的名字由一个字符串组成,用以识别不同的状态,状态是可以匿名的,没有名字,状态名一般放置在状态图标的顶部。
——入口/出口动作
入口/出口动作表示进入/退出这个状态所执行的动作,入口动作的语法是entry/执行的动作;出口的动作语法是exit/执行的动作,这里所指的动作可以是原子动作,也可以是动作序列。
——内部转换
内部转换是不会引起状态变化的装换,此转换的触发不会导致状态的入口/出口动作被执行。
——延迟事件
延迟事件是该状态下暂时不处理,但将推迟到该对象的另一个状态下事件处理队列。
——子状态
在复杂的应用中,当状态机处于某特定的状态时,状态机所在的对象在此刻的行为中还可以用一个状态机来描述,也就是说,一个状态内部还可以包括其他状态。
转换包括:
——原状态
状态机所在对象的状态的变化
——目标状态
装换使对象从一个状态转换到另一个状态
——触发事件
状态机描述了对象的具有事件驱动的动态行为
——监护条件
转换可能具有一个监护条件
——动作
当转化被激活时,它的动作被执行