我爱Aspx >> VC.Net >> 第6章 状态机视图6-1 事件的种类
1. 信号事件
信号是作为两个对象之间的通信媒介的命名的实体,信号的接收是信号接受对象的一个事件。发送对象明确地创建并初始化一个信号实例并把它发送到一个或一组对象。最基本的信号是异步单路通信,发送者不会等待接收者如何处理信号而是独立地做它自己的工作。在双路通信模型中,要用到多路信号,即至少要在每个方向上有一个信号。发送者和接受者可以是同一个对象。
信号可以在类图中被声明为类元,并用关键字《signal》表示,信号的参数被声明为属性。同类元一样,信号间可以有泛化关系,信号可以是其他信号的子信号,它们继承父信号的参数,并且可以触发依赖于父信号的转换(如图6-1所示)。
图6-1 信号的等级组织
2. 调用事件
调用事件是一个对象对调用的接收,这个对象用状态的转换而不是用固定的处理过程实现操作。对调用者来说,普通的调用(用方法实现的调用)不会被调用事件所辨别。接收者不是用方法来实现操作就是触发一个状态转换来实现这个操作。操作的参数即事件的参数。一旦调用的接收对象通过由事件触发的转换完成了对调用事件的处理或调用失败而没有进行任何状态转换,则控制返回到调用对象。不过,与普通的调用不同,调用事件的接收者会继续它自己的执行过程,与调用者处于并行状态。
3. 修改事件
修改事件是依靠特定属性值的布尔表达式所表示的条件的满足。这是等到特定条件被满足的一种声明途径,但是一定要小心使用它,因为它表示了一种具有时间持续性的并且可能是涉及全局的计算过程(是一种远距离的动作,因为被测试的值可能是远距离的)。这既有好处也有坏处,它的好处在于它将模型集中在真正的依赖关系上—一种当给定条件被满足时发生的作用—而不是集中在测试条件的机制上。缺点在于它使修改系统潜在值和最终效果的活动之间的因果关系变得模糊了。测试修改事件的代价可能很大,因为原则上修改事件是持续不断的。而实际上,又存在着避免不必要的计算的方法。修改事件应该仅用在当一个具有更明确表达形式的通信形式显得不自然时。
【我对这篇文章有话说?】
迎接CDMA时代吧[05-21]
第9章 物 理 视 图[05-21]
第8章 交 互 视 图[05-21]
第7章 活 动 视 图[05-21]
第4章 静 态 视 图[05-21]
第5章 用 例 视 图[05-21]
第3章 UML初览[05-21]
第2章 模型的性质与目标[05-21]
第1章 UML综述[05-21]
用Junit Framework编写单元测试[05-21]