主动类

一、主动类的概念

主动类也叫活动类(active class),它的实例对象至少拥有一个进程或线程,因此它能够启动控制流;其他方面,它和普通的类一样,普通类没有启动控制流的能力。

控制流顺序程序

所谓控制流是指程序的执行轨迹,它能够反应程序的实时执行过程。

如果跟踪顺序程序的执行过程,会发现程序语句是一句接着一句执行的,执行的动作可能是分支、循环或者跳转;如果这个执行过程中有任何的递归或者迭代,那么这个控制流会在其自身中循环。

所以,在顺序程序中,只有一个单独的控制流,它在一个时间有且只能处理一件事情,任何并发的系统外部事件都要排队或者被丢弃。

进程与线程

从UML的角度来看,进程和线程都是一个独立控制流,进程是同其他进程并发执行的重量级的流,线程是与同一进程中其他线程并发执行的轻量级的流。

主动类与主动对象

主动对象是拥有进程或线程,并能够启动控制活动的对象,而主动类就是实例为主动对象的类。

主动类用于对进程或线程的公共家族建模,主动类的实例主动对象将一个进程或线程具体化,当创建一个主动对象时,其相关的控制流就被启动;当撤销这个主动对象时,其相关的控制流就被终止。

二、主动类的图形表示

主动类和普通类的图形表示一样,只不过它比普通类多了一些特征——实例对象拥有进程或线程,在图形表示上,为了对这个额外特征进行区分,普通类的左右边框变成双边框,如下所示: 主动类 主动类的其他图形表示方面与普通类完全一致。

用户头像
登录后发表评论