一、状态机图概念
展示的是单个对象内从状态到状态的控制流。 通过建立类对象的生命周期模型来描述对象随时间变化的动态行为。
常见术语
1. 状态
明显影响对象行为的属性,这些属性表达的状态。
2. 子状态
嵌套在另一状态中。
3. 历史状态
组合状态中的子状态,用于标识上次退出复合状态的最后一个活动子状态。
4. 转换
二、状态机图建模
不要滥用,仅对具有三个或更多潜在状态的类才画状态机图。主要用于反应型对象,反应型对象是指:
- 响应外部事件,即来自对象语境外的事件;
- 具有清晰的生命期,可以被建模为状态、迁徙和事件的演化;
- 当前行为和过去行为存在依赖关系;
- 对事件做出反应后,又变回空闲状态,等待下一个事件。
建模策略:
- 选择状态机图的语境(即建模对象);
- 选择初态和终态;
- 考虑对象的可能状态和状态的顺序;
- 触发状态转换的事件;
- 使用子状态,组合状态简化状态机图。