当前位置:首页 > 芯闻号 > 充电吧
[导读]我们用了两篇文章说明了CallOperationAction,本文接着这个感觉说明CallBehaviorAction。首先还是看正式的说法,在《GB/T 28174.2-2011 统一建模语言(UM

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


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


调用行为动作(CallBehaviorAction)


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


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


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

表示方法


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



注意右下角的小叉子。


设定方法


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


Action类型选择CallBehavior。

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

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


和CallOperationAction的区别


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


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




本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭