知识卡片

主动类

普通读书笔记卡 · 1944.q

内容

主动类(active class)的每个实例自带并控制自己的一条独立控制线程,方法调用既可能在调用者线程里执行,也可能在主动对象自己的线程里执行——典型例子是命令处理器:从外部接收命令对象,在自己线程内部逐个执行,而非在调用者线程里同步跑完。UML 2用两侧带竖线的类框表示主动类(UML 1用粗边框,称主动对象),这个概念用来在类图层面标记涉及独立执行线程,帮助读图者提前识别并发相关的类。

参考来源

- 位置:《UML精粹:标准对象建模语言简明指南(第3版)》第5章《类图:进阶概念》(源文件:_epub-src/EPUB/4.xhtml) - 结论依据:原文定义"主动类(active class)有实例,每个实例执行和控制它自己的控制线程。方法调用可以在客户的线程或主动对象的线程中执行。一个好的例子是命令处理器,它从外部接受命令对象,然后在它自己的控制线程内执行命令",并说明UML 1/2表示法差异。 - 原始内容:主动类(active class)有实例,每个实例执行和控制它自己的控制线程。方法调用可以在客户的线程或主动对象的线程中执行。一个好的例子是命令处理器……从UML 1到UML 2,主动类表示法有变化……在UML 2中,主动类在两侧有额外的竖线;在UML 1中,它用粗边框表示。