
状态图的转移
警戒条件
操作
进入和退出操作
内部转移
延迟的事件
转移是两个状态之间的关系,它表示当发生指定事件并且满足指定条件时,第一个状态中的对象将执行某些操作并进入第二个状态。当发生这种状态变更时,即“触发”了转移。在触发转移之前,可认为对象处于“源”状态;在触发转移之后,可认为对象处于“目标”状态。转移具有以下几项特征: 源状态 转移所影响的状态;如果对象处于源状态,当对象收到转移的触发事件并且满足警戒条件(如果有)时,就可能会触发输出转移。 事件触发器 使转移满足触发条件的事件。当处于源状态的对象收到该事件时(假设已满足其警戒条件),就可能会触发转移。 警戒条件 一种布尔表达式。在接收到事件触发器而触发转移时,将对该表达式求值;如果该表达式求值结果为 True,则说明转移符合触发条件;如果该表达式求值结果为 False,则不触发转移。如果没有其他转移可以由同一事件来触发,该事件就将被丢弃。 操作 可执行的、不可分割的计算过程,该计算可能直接作用于拥有状态机的对象,也可能间接作用于该对象可见的其他对象。 目标状态 在完成转移后被激活的状态。 一个转移可能有多个源状态,在这种情况下,它将呈现为一个从多个并行状态出发的结合点;一个转移也可能有多个目标状态,在这种情况下,它将呈现为一个到多个并发状态的叉形图。 简单状态是没有子结构的状态。具有子状态(嵌套状态)的状态被称为复合状态。子状态可能被嵌套到任意级别。嵌套的状态机最多可能有一个初始状态和一个终止状态。通过显示某些状态只能在特定环境(包含状态)中存在,子状态可以简化复杂的平面状态机。
转移的源状态是包含复合状态之外的源状态,其目标状态可能是复合状态或子状态。如果其目标状态是复合状态,嵌套的状态机就必须包括一个初始状态,在进入复合状态之后并在发出它的进入操作(如果有)之后,控制权将被传递给该初始状态。如果其目标状态是嵌套状态,那嵌套状态的进入操作(如果有)后,控制权将被传递给该嵌套状态。
从复合状态出发的转移可能会以复合状态或子状态作为它的源状态。在这两种情况下,控制权先离开嵌套状态(并在可能的情况下发出它的退出操作),然后离开复合状态(并在可能的情况下发出它的退出操作)。其源状态为复合状态的转移基本上会中断嵌套状态机的活动。

2024-08-28 广告