前面已经学过活动图,我们再来学习另外一种行为图:状态图。
一、概念
状态图用来描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转移。
二、状态图的图符
状态图由四部分组成:状态、转移、起点和终点。
1、状态
状态是指在对象的生命周期中满足某些条件、执行某些活动或等待某些事件时的一个条件或状况。
一个状态有以下几个部分:
1)名称name
2)进入协作和退出动作entry action/exit action
3)内部装换internal transition
4)子状态substate
5)延迟事件deferred event
2、装换
一个转换是两个状态之间的一种关系,表示对象将在第一个状态中执行一定的动作,并在某个特定事件发生而某个特定的条件满足时进入第二个状态。
一个状态由5部分组成:
原状态source state;事件触发event trigger;监护条件guard condition;动作action;目标状态target state
上图描述了一个机器的两个状态的变迁情况,从左到右开始分析,左面的黑圈是起点,往下走的方框表示机器的空闲状态,经过按键的转移达到运行状态,如果运行结束则回到空闲状态,按下关机键那么则结束。
三、状态机
状态机是这样一种行为,它描述了一个对象或一个交互在生命期内响应事件所经历的状态序列。
单个类或一组类之间协作的行为可以用状态机来描述。
一个状态机涉及到一些其他元素,包括状态、装换(从一个状态到另一个状态的流)、事件(触发装换的)
四、与活动图的区别
状态图侧重从行为的结果来描述(状态)
活动图侧重从行为的动作来描述(活动)
我们画图的时候还要注意它们图符的区别:
五、实战演练
下图是针对机房,从用户的角度出发,从注册、上机、下机到注销过程中的状态变化。
六、总结
和之前活动图的对比学习,状态图画图注意一定是一个状态,动作执行的结果,不同于活动图的动作。