首页 百科知识 4.3.8状态图

4.3.8状态图

时间:2024-10-15 百科知识 版权反馈
【摘要】:状态机是一个行为,它说明对象在生命周期中响应事件所经历的状态序列以及它们对事件的响应。通过状态图可以知道一个对象、子系统、系统的各种状态及其收到的消息对其状态的影响。世界万物都有可以描述的状态,因此都可以通过状态图来描述它们的行为,状态图具有很强的表达能力。图4-17是一个简单的状态图。状态图适合描述跨越多个用例的单个对象的行为,不适合描述多个对象之间的行为协作。因此,状态图经常与其他UML图组合使用。

4.3.8 状态图

状态机是一个行为,它说明对象在生命周期中响应事件所经历的状态序列以及它们对事件的响应。一个状态是指在对象的生命周期中的一个条件或状态,在这一期间对象将满足某些条件、执行某些活动或等待某些事情的发生。一个事件是对一个在时间和空间上占有一定位置的有意义的事情。转换是两个状态之间的关系,它一般指对象在前一个状态中执行一定动作满足了一定条件而进入第二个状态的过程。图4-16是事件和转换的举例。

img77

图4-16 事件与转换的举例

图4-16中A、B、C就是三个状态,得到退款和得到货物是两个事件,而从状态A到状态B或状态C的过程就是状态的转换。

状态图显示了一个状态机,它强调从状态到状态的控制流,以状态的概念描述对象、子系统、系统在生命周期中的各种行为,简单地说,就是一个状态图描述一个对象(可以是类、程序模块、系统)的行为。通过状态图可以知道一个对象、子系统、系统的各种状态及其收到的消息对其状态的影响。世界万物都有可以描述的状态,因此都可以通过状态图来描述它们的行为,状态图具有很强的表达能力

状态图有以下几种常用的模型元素:状态(State)、转换(Transition)、起始状态(Start State)、终止状态(End State)。状态描述一个对象的生命周期中某个时间段的特征,状态是用圆角的矩形表示;转换描述状态间的转移,用一个带箭头的实线段表示,还可以给转换添加标注,通过标注来描述引起状态转移的事件、条件和执行的操作,标注的格式为:事件名[条件]/操作,标注的每个部分都可以省略;起始状态描述对象生命周期的开始阶段,用一个黑色的圆表示,有时为了表述清楚,在不产生混淆概念的情况下,可以省去起始状态;终止状态描述对象生命周期的终止阶段,用一个带圆形外框的黑色圆表示,一个状态图可以有多个终止状态,有时为了表述清楚,在不产生混淆概念的情况下,可以省去终止状态。图4-17是一个简单的状态图。

img78

图4-17 简单的状态图

图4-17是一个简单的购物过程的状态图,顾客到市场之后开始寻找自己需要的货物,通过和商家的接触,了解商家是否拥有自己所需要的货物,如果没有就结束在这一购物的过程。如果有所需要的货物,顾客就进入与商家讨价还价的状态,通过讨价还价,如果价格太贵,则结束在这一购物的过程,如果价格合理,决定购买,则顾客进入付钱交易的状态,交易之后完成顾客的购物。

状态图适合描述跨越多个用例的单个对象的行为,不适合描述多个对象之间的行为协作。因此,状态图经常与其他UML图组合使用。状态图可以准确地描述类的动态行为,但是没必要对每一个类都建立状态图,一般的只对某些关键类的行为建立状态图,从而帮助理解。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈