UML接收事件动作

UML接收事件动作,接收事件动作也是一个特殊的动作,表示等待满足特定条件的某个事件发生。

一个接收事件动作至少关联一个触发器,每个触发器都确定了一种接收的事件类型。事件的类型可以是异步调用事件、改变事件、信号事件和时间事件。一个接收事件的动作可以接收多种类型的事件。

对于调用事件,接收事件动作只能处理异步调用,而不能处理同步调用。而对于信号事件,一个触发器可确定一种信号的类型及其子类型。
接收事件动作对发生的事件进行接收和处理,所发生的事件是由拥有该动作的对象所检测的。当一个接收事件动作执行时,该对象将检测到一个事件发生,并与其中一个触发器的事件类型匹配。如果发生的事件没有被其他动作接收,那么这个接收事件动作就执行完成了,而且输出一个值来表示这个发生的事件。如果发生的事件没有匹配触发器指定的任何事件类型,那么该动作就继续等待,直到匹配后才能接收。

接收信号事件动作使用一个凹边矩形表示。例如,下图中的“取消订单”就是一个接收信号事件动作,它表示等待一个信号(取消订单)发生。接收到这个信号后,将调用一个取消订单的动作。图中,接收事件动作没有描述输入,实际上它肯定是接收到一个信号,可能来自当前活动之外,也可能来自客户。
UML接收事件动作

一些事件接收动作可以没有输入,这也是动作的一个特点,此时当它的外层活动或者节点启动时,这个动作就启动了。该动作在接收到一个事件后仍然保持有效。也就是说,在接收到事件而且输入一个值之后,它仍然继续等待另一个事件发生而不会终止。当外层活动或者节点终止时,此动作才终止。

例如,下图为一个发送信号和接收信号的示例。该图表示当一个订单处理完成后向客户发送一个请求支付的信号,然后等待接收来自客户的一个确认支付信号。只有请求支付信号发送之后,才可能收到来自客户的确认支付的信号。当确认信号到达后,立即按订单发货。
UML接收事件动作

上图中,从发送信号动作到接收信号动作有一个控制流,它表示两个动作的前后顺序,但是并不能表示发送和接收的是同一个信号。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!