EA&UML日拱一卒-活动图::CallBehaviorAction

来源:互联网 发布:北京数据堂公司英语 编辑:程序博客网 时间:2024/06/14 09:21

我们用了两篇文章说明了CallOperationAction,本文接着这个感觉说明CallBehaviorAction。


首先还是看正式的说法,在《GB/T 28174.2-2011 统一建模语言(UML) 第2部分:上层结构》中是这样描述的:


调用行为动作(CallBehaviorAction)


CallBehaviorAction是一个动作,它直接调用一个行为,而不是调用一个行为特性而导致那个行为被调用。动作的参数值对调用的行为的参数值有效。如果调用是同步的,调用动作等待被调用行为结束且结果返回到输出引脚以后再结束;如果调用是异步的,调用动作不等待结果而直接返回。


这段文字有两点需要补充。一行为特性而导致那个行为被调用,指的是通过调用操作触发方法,或者是通过信号触发行为的情况。二是蓝字部分,原文中没有,参考最新英文版增加上去了。


其他的部分应该比较好理解。

表示方法


以下是CallBehaviorAction在活动图中的表示。



注意右下角的小叉子。


设定方法


CallBehaviorAction的设定方法和前文讲过的CallOperationAction基本一致,这里只说明不同点。


  1. Action类型选择CallBehavior。

  2. CallBehaviorAction不是针对对象操作的,所以就没有用于传递操作对象的target引脚。

  3. 通 过属性对话框中的Call分类选择Behaivor的时候,虽然还是可以选择类的方法,但是只应该选择静态方法。除此之外,还可以选择 Activity,Interaction和StateMachine。Interaction在顺序图中讲过,Activity是目前正在进行的活动图 中的内容,而StateMachine会在后续文章中说明,敬请期待。


和CallOperationAction的区别


在《GB/T 28174.2-2011 统一建模语言(UML) 第2部分:上层结构》的描述中,CallBehavior的描述非常的不同,不大好理解,以下是作者独自总结的一家之言,仅供参考。


以C++举例:CallOperaitonAction调用的是类的非静态方法,操作或者是通过信号等方式触发对象的行为,而CallBehaviorAction则是调用类的静态方法或者是一般的函数。


以上就是今天的文章,欢迎推荐给您的朋友!
阅读更多更新文章,请扫描下面二维码,关注公众号【面向对象思考】!