EA&UML日拱一卒--序列图(Sequence Diagram)::生命周期

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


创建对象


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


EA&UML日拱一卒--序列图(Sequence Diagram)::生命周期


处理流程:


  1. 用户双击鼠标。

  2. Framework生成QMouseEvent并发送给DrawerView

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

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

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

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

  7. 将新图形登录到DrawerData中


画法


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


EA&UML日拱一卒--序列图(Sequence Diagram)::生命周期


删除对象


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


EA&UML日拱一卒--序列图(Sequence Diagram)::生命周期


处理流程


  1. 用户按下Delte键

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

  3. DrawView从DrawerData移除m_currentShape

  4. 删除m_currentShape对象

  5. 将m_currentShape置为空指针


画法


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


EA&UML日拱一卒--序列图(Sequence Diagram)::生命周期


QtDrawer现状


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


EA&UML日拱一卒--序列图(Sequence Diagram)::生命周期


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

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

EA&UML日拱一卒--序列图(Sequence Diagram)::生命周期