状态机用于对模型元素的动态行为进行建模,更具体地说,就是对系统行为中受事件驱动的
方面进行建模(请参见概念:事件与信号)。状态机专门用于定义依赖于状态的行为(即
根据模型元素所处的状态而有所变化的行为)。其行为不会随着其元素状态发生变化的模
型元素不需要用状态机来描述其行为(这些元素通常是主要负载管理数据的被动类)。
状态机由状态组成,各状态由转移链接在一起。状态是对象执行某项活动或等待某个事件时
的条件。转移是两个状态之间的关系,它由某个事件触发,然后执行特定的操作或评估并
导致特定的结束状态。图 1 描绘了状态机的各种元素。一个简单的编辑器可被视为有限的
状态机,其状态为Empty(空)、Waiting for a command(等待命令)和 Waiting for text
(等待文本)。事件 Load file(装载文件)、Insert text(插入文本)、Insert character
(插入字符)和Saveandquit(保存并退出)导致了状态机中的转移。下面的图 2 描绘了
编辑器的状态机。
图 1:状态机符号。
图 2:简单编辑器的状态机。
waterMarkCode("content1");