如果你足够细心,应该可以注意到上一篇文章最后的示例流程中,有一个地方与众不同,就是下图中红框中的部分。

这部分就是今天的内容,对象流。

语义

控制流(control flow)描述了两个活动节点之间执行令牌(执行焦点)的流动。还有另外一种情况,两个活动之间除了传送执行令牌,还需要传送数据或对象,这种情况称之为对象流(object flow)。

表示方法

对象流有两种表示方法,一种是将控制流一分为二,中间加上传送的对象或数据。

另外一种表示方法是在两个活动节点的输入输出之间连线。

需要补充说明的是,Action旁边的小正方形叫ActionPin,用来表示Action的输入/输出管脚。

画法

第一种表示方法

  1. 拖动下面的Object图标到适当位置

  2. 选择控制流图标,连接Action到对象,对象到下一个Action

第二种表示方法

选择下面的对象流图标,连接源Action和目的Action即可。

当然也可以选择Action上下文菜单-【New child element】-【Action pin】添加输入/输出管脚以后选择控制流图标并连接。

总结


最简单的问题,为什么需要对象流?

首先回头看看活动图入门一文最后的例子。

我们知道,写程序也好,读程序也好,除了关注程序流以外还应该关注数据流。UML活动图中的对象流正好可以用来表达数据流,而流程图就不行。

以下是我们补充了对象流以后的样子。

对象图明白地表明了各个处理之间的数据走向。

需要补充说明的是,只有所有的输入控制流/对象流上执行令牌都到达时,Action或者Activity才能执行。

现在可以回头看本文开始的流程图,可以做如下理解:

  1. UI流程接受到复印流程传来的event以后,转送给decision node。

  2. decision node根据event的种类,调用不同的处理并将event向该处理转移。·

  3. 被调用的处理根据event中保管的信息进行相应的处理。

以上就是今天的文章,如果它能给您带来些许收获,欢迎点赞并推荐给您的朋友!

更新文章,请扫描下面二维码,关注公众号【面向对象思考】

EAUML日拱一卒-活动图:: 对象流相关推荐

  1. EAUML日拱一卒-活动图::OMG UML2.5中文译文 16.12 Expansion Regisons

    16.12.1 Summary(概要) An ExpansionRegion is a StructuredActivityNode that executes its contained eleme ...

  2. EAUML日拱一卒--序列图(Sequence Diagram)::生命周期

    在实际的程序中,创建对象,删除对象这样的控制对象生命周期的处理可以说比比皆是. 创建对象 下面以图形编辑软件中用户双击鼠标创建新对象为例说明. 处理流程: 用户双击鼠标. Framework生成QMo ...

  3. EAUML日拱一卒--类图::对象图(object diagram)

    对象图的功能 类图用于说明类以及类之间的关系,但是它相对抽象,有时会比较难理解.比如下面的例子: 上图是一个图形编辑软件的例子,我们有一个超类Shape和它的五个子类.其中ShapeComposite ...

  4. EAUML日拱一卒--序列图(Sequence Diagram)::交互和交互使用

    画时序图就和写作文一样,经常会遇到一发而不可收的情况,结果就是得到一个巨大的时序图.这种情况下,作者首先会因为完成了一件大工程而感到自豪,可是一旦他把完成的时序图拿给别人看或者是需要维护的时候就开始意 ...

  5. EAUML日拱一卒 时序图入门

    有些文章将TimingDiagram翻译为定时图,但总是差那么点意思.经过权衡,本文将TimingDiagram译为时序图.对于本系列早期文章中将SequenceDiagram翻译成时序图的情况,将来 ...

  6. EAUML日拱一卒 总目录

    用例图 EA&UML日拱一卒 用例图开篇 EA&UML日拱一卒 用例包含关系 EA&UML日拱一卒 用例泛化关系 EA&UML日拱一卒 用例扩展关系 类图 EA& ...

  7. EAUML日拱一卒 用例扩展关系

    用例扩展关系 下面是ULM2.5.1中对用例扩展关系的解释. 扩展是从扩展用例到被扩展用例的关系,它指定扩展用例中定义的行为如何以及何时可以插入到被扩展用例.扩展发生在被扩展用例中定义的一个或多个特定 ...

  8. EAUML日拱一卒-微信小程序实战:位置闹铃 (16)-单元测试是个技术活

    程序设计,实现之后的下一个环节就是单元测试了.对于位置闹铃小程序来讲,带着设备到处移动以测试监控点的状态迁移就是一个必经之路,但是如果所有环节都通过实地测试来解决,那将耗费大量的时间和体力. 我们的选 ...

  9. EAUML日拱一卒-微信小程序实战:位置闹铃 (7)-在画面之间共享数据

    序列图 为了理顺用户的操作逻辑,我们将监控点的设定分到选择监控点和编辑监控条件两个画面进行: 为了新建监控点和编辑监控点流程的共通化,创建监控点对象的工作被分配到了主画面. 序列图如下: index. ...

最新文章

  1. Django博客系统注册(图形验证码接口设计和定义)
  2. 好用的工具---screen命令
  3. 时钟周期及秒(s) 毫秒(ms) 微秒(μs) 纳秒(ns) 皮秒(ps)之间转换
  4. QtQuick controls和controls2 自定义样式
  5. python计算长方体体积最简单代码_python处理DICOM并计算三维模型体积
  6. React之事件绑定
  7. javafx应用启动自动执行函数_JavaFx:Application start方法中的异常
  8. gem5的安装、编译及运行
  9. Vue中data为何以函数形式返回
  10. 深度学习之---yolo源代码部分分析
  11. 乐高spike python_SPIKE Prime科创套装 篇四:乐高教育SPIKE Prime入门编程和搭建活动教学...
  12. linux添加自己的键盘映射,linux下修改键盘映射
  13. 功能测试转测试开发的正确姿势
  14. 《青年在选择职业时的考虑》——马克思
  15. excel表格横向纵向变换_Excel操作技巧:简单3步,搞定数据统计和分析!
  16. 流刷新函数:fflush()的介绍和用法
  17. 软件测试基础知识 - 单元测试、集成测试、系统测试、回归测试、验收测试这几步中最重要的是哪一步
  18. .NET Micro Framework简介
  19. macbook pro下安装三系统
  20. 【并行计算-CUDA开发】GPU 的硬体架构

热门文章

  1. 位,字节和字区别(bit,byte,word)
  2. certutil证书管理命令
  3. 网络空间搜索引擎流量识别
  4. 强制刷新浏览器快捷键
  5. 韩语入门之韩语字母(1)
  6. python:excel批量设置打印格式
  7. K-means聚类原理实现 优缺点 轮廓系数 调优Canopy算法
  8. 回归预测 | MATLAB实现PSO-GRNN多输入单输出回归预测
  9. RK3588S Android12修改boot.img分区大小
  10. Django 02 :部门管理 【面板设计(Bootstrap)+部门的增删改查(Django+MySQL)】