架构之状态图

状态图描述一个实体基于事件反应的动态行为,显示该实体如何根据当前的状态对不同的事件作出反应的,为了研究类、角色、子系统或组件的行为。

状态图的核心元素包括:

  • 起点

【作用】描述活动图的开始状态

【表示方式】黑的实心圆

  • 终止点

【作用】描述活动图的终止状态

【表示方式】实心圆的空心圆

  • 状态(State):对象所处的某个具体时刻的条件或者情况。

    【作用】活动的所处状态

    【表示方式】椭圆矩形

  • 转换(Transition):对象从一个状态变化到另一个状态的过程。

    【作用】描述一个活动转向另一个活动

    【表示方式】带箭头的实线段,指向转向的活动

  • 事件(Event):导致状态转换的一个外部的或者内部的发生。
  • 动作(Action):在进行状态转换时执行的活动。

    【作用】可以是手动也可以自动的执行任务

    【表示方式】圆角矩形

举例来说,考虑一个在线购物系统中的订单对象,其状态图可能包括“新建订单”、“待付款”、“已付款”、“已发货”和“已完成”等状态,以及触发状态转换的事件如“提交订单”、“支付完成”、“卖家发货”等。

•最为核心的元素无外乎是两个:一个是用圆角矩形表示的状态(初态和终态例外);另一个则是在状态之间的、包含一些文字描述的有向箭头线,这些箭头线称为转换

转换的五要素

示例:在订单处理的过程中,会员可以点击“取消订单”取消该订单。如果支付失败,该订单将被标记为挂起状态,可后续重新支付,如果挂起超时30分钟未支付,系统将自动取消该订单。订单支付成功后,系统判断订单类型:

(1)对于常规订单,标记为备货状态,订单信息发送到货运部,完成打包后交付快递发货。

(2)对于定制订单,会自动进入定制状态,定制完成后交付快递发货。会员在系统中点击“收货”按钮变为收货状态,结束整个订单的处理流程。


区分状态图和活动图的特点

状态图,强调的是类对象具有的状态;活动图,主要强调处理流程和数据流转,各种执行流程。

选择题

  1. 状态图中,以下哪一项是描述状态之间转换的触发因素? A. 状态 B. 转换 C. 事件 D. 动作

  2. 在状态图中,当对象从一个状态转移到另一个状态,这个过程称为什么? A. 事件 B. 转换 C. 动作 D. 状态
  3. 下列哪一项不是状态图的核心元素? A. 对象 B. 状态 C. 转换 D. 事件
  4. 在状态图中,状态是指? A. 对象所处的具体时刻的条件或情况 B. 触发状态变化的外部或内部发生 C. 在进行状态转换时执行的活动 D. 从一个状态到另一个状态的过程
  5. 哪一项活动不是由状态图直接表示的? A. 状态的变化 B. 事件的发生 C. 动作的执行 D. 代码的编写
  6. 对于在线购物系统中的订单对象,以下哪一状态不可能出现在其状态图中? A. 待付款 B. 已发货 C. 购物车 D. 已完成
  7. “支付完成”在订单状态图中属于什么? A. 状态 B. 转换 C. 事件 D. 动作
  8. 动作在状态图中的作用是什么? A. 描述状态 B. 触发转换 C. 执行在状态转换时的活动 D. 描述对象
  9. 状态图主要用于显示什么? A. 对象的代码实现 B. 对象在其生命周期内的状态序列 C. 事件的具体代码 D. 系统的物理结构
  10. 在状态图中,“卖家发货”最可能导致什么状态转换? A. 从“已完成”到“已发货” B. 从“已付款”到“已发货” C. 从“已发货”到“已完成” D. 从“待付款”到“已付款”

答案和解析

  1. 答案:C。 事件是描述状态之间转换的触发因素,是导致状态转换发生的外部或内部条件。
  2. 答案:B。 转换是对象从一个状态到另一个状态的过程,是状态图中描述状态变化的关键元素。
  3. 答案:A。 对象不是状态图的核心元素。状态图的核心元素包括状态、转换和事件。
  4. 答案:A。 状态指的是对象所处的具体时刻的条件或情况,反映了对象在特定时间点的属性值。
  5. 答案:D。 代码的编写不是由状态图直接表示的活动。状态图主要描述状态的变化、事件的发生和动作的执行。
  6. 答案:C。 “购物车”不是订单对象的一个状态,而是在线购物系统中另一种对象的状态或功能。
  7. 答案:C。 “支付完成”是一个事件,它触发了订单状态的转换,如从“待付款”到“已付款”。
  8. 答案:C。 动作执行在状态转换时的活动,是对转换过程中发生的具体操作的描述。
  9. 答案:B。 状态图主要用于显示对象在其生命周期内的状态序列,帮助理解对象的行为特性。
  10. 答案:B。 “卖家发货”事件最可能导致状态从“已付款”转换到“已发货”,表示订单处理流程中的一步。
  • 19
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Allen019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值