【问题标题】:Active class versus passive class主动类与被动类
【发布时间】:2013-01-28 15:39:30
【问题描述】:
在 UML 规范上层结构 2.5(仍然是 Beta,第 203 页)中
一个类可以通过将 isActive 设置为 true 来指定为活动的(即,
它的每个实例都是一个活动对象)。当 isActive 为假时
类是被动的(即,它的每个实例都在
其他对象的上下文)。
- 我想知道是否有一个简单的例子来说明应用它们的区别?
- 再详细说明一下这个概念?
【问题讨论】:
标签:
uml
specifications
class-diagram
【解决方案1】:
根据定义,
活动对象
在 UML 中,活动类,因此活动对象,
存在于它们自己的操作线程中并且有它们自己的地址
空间。如果按照流程来考虑执行或代码活动,
活动对象可以启动或控制该流程。活动对象,in
换句话说,是顺序的并且做某事:修改变量,改变
程序行为,等等。 在 UML 中,活动类和对象是
通过比被动对象更粗的边框来区分。
UML 中的被动对象通常没有
修改或开始执行流程的能力,因为他们必须
等待另一个对象调用它们。相反,被动对象是
通常用于存储信息,在很多情况下这
信息可以在多个其他对象之间共享。 这可能
允许同时访问被动对象,而不是顺序访问。
为了确保里面包含的数据具有高度的完整性,UML
允许被动对象坚持访问它们
依次;如果两个线程尝试调用相同的顺序
被动对象,该对象可以延迟第二个线程,直到
first 已经完成了。
可以找到一个有用的例子Here