在实际的程序中,创建对象,删除对象这样的控制对象生命周期的处理可以说比比皆是。

创建对象

下面以图形编辑软件中用户双击鼠标创建新对象为例说明。

处理流程:

  1. 用户双击鼠标。

  2. Framework生成QMouseEvent并发送给DrawerView

  3. DrawerView从MouseEvent中取得鼠标位置

  4. 调用当前形状的clone方法

  5. 在clone方法中创建新的图形。

  6. 将鼠标位置设定为新图形的位置

  7. 将新图形登录到DrawerData中

画法

打开clone方法中创建新图形的消息的属性对话框,选择【Leftcycle】为【New】,虽然不是必须,但是为了明确表达设计者的目的,可以同时设定【Sterotype】选项为【create】。

删除对象

接下来以图形编辑软件中用户按下Delete键删除当前对象为例说明。

处理流程

  1. 用户按下Delte键

  2. Framework将生成QKeyEvent并发送给DrawView

  3. DrawView从DrawerData移除m_currentShape

  4. 删除m_currentShape对象

  5. 将m_currentShape置为空指针

画法

打开删除图形消息的属性对话框,选择【Leftcycle】为【Delete】,虽然不是必须,但是为了明确表达设计者的目的,可以同时设定【Sterotype】选项为【destroy】。

QtDrawer现状

由于类图和时序图是联动的,我们在完成上述时序图的同时,类图变成了下面的样子。

如果阅读本文能给您带来些许收获,欢迎分享给更多的朋友!

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

EAUML日拱一卒--序列图(Sequence Diagram)::生命周期相关推荐

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

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

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

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

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

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

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

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

  5. EAUML日拱一卒-活动图:: 对象流

    如果你足够细心,应该可以注意到上一篇文章最后的示例流程中,有一个地方与众不同,就是下图中红框中的部分. 这部分就是今天的内容,对象流. 语义 控制流(control flow)描述了两个活动节点之间执 ...

  6. EAUML日拱一卒 总目录

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

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

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

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

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

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

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

最新文章

  1. ESP32-S模块转接板设计与实现
  2. sqlserver 查找某个字段在哪张表里
  3. VS2008工具,两种加入库的方法。 设置程序运行时目录
  4. 解决 kindle 书籍字体颜色偏淡问题的方法
  5. 编程实现背包的递归和非递归两种解法_算法动态规划(七)背包问题4
  6. maven本地库已经有的包了,如何不下载(linux环境)
  7. 华云数据升级发布“信创云基座“ 用“全芯全栈”支持“信创强国”
  8. python打印字符串全排列_Python实现全排列的打印
  9. linux中打开gif图片命令,在Linux终端中安装使用Gifski创建GIF动图
  10. react组件卸载调用的方法_react相关基础知识
  11. Java库转oc,(java转行oc)什么是block,用java来解释oc中的block
  12. 计算机学报Latex模板运行出错解决
  13. ROI Pooling原理
  14. 打造智能化的园区管理系统
  15. CDA Level2建模备考心得
  16. 上学易 APP - 小学信息平台,学区查询,幼升小,小学,学区,学校基础信息平台
  17. 你只是想学好linux而已
  18. QT ui界面设置总结
  19. 全球零碳产业园标准率先发布;黑芝麻智能与江汽集团战略合作 | 美通企业日报...
  20. win10html怎么创建后打不开,Win10打不开路由器设置页面(设置界面)怎么办?

热门文章

  1. Y430P拆机:安装固态硬盘+内存+重装系统梳理
  2. python opencv制作隐藏图片
  3. 对于Java的MyBatis的入门
  4. c++ Bellman-Ford 算法
  5. rem 用户改变字体大小_用户可以更改字体大小
  6. Modern Robotics读书笔记(一)
  7. pythonwhile循环语句_Python While循环语句
  8. 基于微信小程序实现番茄钟专注时间项目演示【附项目源码+论文说明】
  9. python入门---日常经验分享
  10. bootstrap-table+bootstrap+font-awesome+layui+jquery+popper+sweetalert2+layer综合应用+图+代码