EA&UML日拱一卒--序列图(Sequence Diagram)::条件执行
2017-05-16 20:36
357 查看
序列图提供了一种Fragment(片段),用来表现条件执行,循环,并发等情况。具体使用哪种Fragment,通过以下的对话框来选择。
![](https://img-blog.csdn.net/20170516202833492)
今天先说条件执行相关的Fragment。
alt(alternative)
alt用于表现条件执行的程序构造。和alt对应的程序结构可以是if/else结构,也可以是swtich结构。还是从图形编辑软件中找例子。
![](https://img-blog.csdn.net/20170516202918872)
这个时序图描述的是DrawerView根据用户按下的方向键来移动图形时的处理。使用的就是名为alt的Framgment。它的设定画面如下:
![](https://img-blog.csdn.net/20170516203003404)
设定内容
Type:alt
Name:ArrowKeyHandling。选取一个有意义的名字有助于读者的理解。
Condition:输入每个分支的判断条件。输入完成的条件可以在Condition输入框下方的列表中表示出来。
需要说明的是,这个对话框中不能调整条件的顺序。条件的顺序是通过例子图中红线框出的小箭头来调整的。
opt(optional)
当然,在实际的程序中,只有某个图形被选中时才可以移动该图形。这就是opt出场的时候了,具体时序图如下:
![](https://img-blog.csdn.net/20170516203056229)
只有在m_currentShape有效时才调用移动图形方法并更新表示。opt其实就是一个没有else的if。
break
首先要明确的是,这个break不是C/C++语言中的那个break,它包含一个带有监护条件的操作片段,如果监护条件为真,则该片段被执行,该片段以后的部分被忽略;如果监护条件为假,那么该片段不会被执行,该子片段以后的部分则会被执行。
好像有点复杂,结合下面代码一起说就容易理解了。
void openfile(void)
{
CFileDialog dlg;
if(dlg.DoModal()!=IDOK)
{
MessageBox.setMessage("Can't open file!");
return;
}
CString FilePathName = dlg.GetPathName();
/*此处省略50行。*/
}
代码很简单,画成序列图如下:
![](https://img-blog.csdn.net/20170516203230747)
上图中包含一个以result是否不等于IDOK为监护条件的break片段,如果监护条件为真,则该片段中的sendMesage和删除dlg操作被执行,GetPathName及以后的部分被忽略;如果监护条件为假,那么break片段不会被执行,GetPathName及以后的部分会被执行。
费了半天劲,[b]break其实就是一个有条件的中途退出处理。[/b]
如果阅读本文能给您带来些许收获,欢迎分享给更多的朋友!
阅读更多新文章,请扫描下面二维码,关注公众号【面向对象思考】
今天先说条件执行相关的Fragment。
alt(alternative)
alt用于表现条件执行的程序构造。和alt对应的程序结构可以是if/else结构,也可以是swtich结构。还是从图形编辑软件中找例子。
这个时序图描述的是DrawerView根据用户按下的方向键来移动图形时的处理。使用的就是名为alt的Framgment。它的设定画面如下:
设定内容
Type:alt
Name:ArrowKeyHandling。选取一个有意义的名字有助于读者的理解。
Condition:输入每个分支的判断条件。输入完成的条件可以在Condition输入框下方的列表中表示出来。
需要说明的是,这个对话框中不能调整条件的顺序。条件的顺序是通过例子图中红线框出的小箭头来调整的。
opt(optional)
当然,在实际的程序中,只有某个图形被选中时才可以移动该图形。这就是opt出场的时候了,具体时序图如下:
只有在m_currentShape有效时才调用移动图形方法并更新表示。opt其实就是一个没有else的if。
break
首先要明确的是,这个break不是C/C++语言中的那个break,它包含一个带有监护条件的操作片段,如果监护条件为真,则该片段被执行,该片段以后的部分被忽略;如果监护条件为假,那么该片段不会被执行,该子片段以后的部分则会被执行。
好像有点复杂,结合下面代码一起说就容易理解了。
void openfile(void)
{
CFileDialog dlg;
if(dlg.DoModal()!=IDOK)
{
MessageBox.setMessage("Can't open file!");
return;
}
CString FilePathName = dlg.GetPathName();
/*此处省略50行。*/
}
代码很简单,画成序列图如下:
上图中包含一个以result是否不等于IDOK为监护条件的break片段,如果监护条件为真,则该片段中的sendMesage和删除dlg操作被执行,GetPathName及以后的部分被忽略;如果监护条件为假,那么break片段不会被执行,GetPathName及以后的部分会被执行。
费了半天劲,[b]break其实就是一个有条件的中途退出处理。[/b]
如果阅读本文能给您带来些许收获,欢迎分享给更多的朋友!
阅读更多新文章,请扫描下面二维码,关注公众号【面向对象思考】
相关文章推荐
- EA&UML日拱一卒--序列图(Sequence Diagram)::同步/异步
- EA&UML日拱一卒--序列图(Sequence Diagram)::迭代表达式
- EA&UML日拱一卒--序列图(Sequence Diagram)::生命周期
- EA&UML日拱一卒--序列图(Sequence Diagram)::连续
- EA&UML日拱一卒--序列图(Sequence Diagram)::并行和临界区
- EA&UML日拱一卒--序列图(Sequence Diagram)::时间约束
- EA&UML日拱一卒-微信小程序实战:位置闹铃 (9)-利用条件渲染实现列表控件
- EA&UML日拱一卒--序列图(Sequence Diagram)::门
- EA&UML日拱一卒--序列图(Sequence Diagram)::状态不变量
- EA&UML日拱一卒--序列图(Sequence Diagram)::入门
- EA&UML日拱一卒--序列图(Sequence Diagram)::循环
- EA&UML日拱一卒-微信小程序实战:位置闹铃 (8)-WXML条件渲染
- EA&UML日拱一卒--序列图(Sequence Diagram)::交互和交互使用
- EA&UML日拱一卒--序列图(Sequence Diagram)::交互概述图
- EA&UML日拱一卒--序列图(Sequence Diagram)::消息签名
- DataTable中执行DataTable.Select("条件")返回DataTable的方法
- EA&UML日拱一卒--类图::关联(关联,聚合,组合)
- EA&UML日拱一卒--类图::对象图(object diagram)
- EA&UML日拱一卒-修改生成代码语言种类的初始值
- EA&UML日拱一卒-关联(限定关联)