![]() |
1
1
规范没有明确说明这一点,但我认为这是所使用链接的定义:
规范中有几个地方谈到了链接。我在11.2.3.3中发现的最普遍的一个
由此,我得出了我的简单定义。 所以,我不同意,链接不是 “仅定义为关联实例” 。这种误解可能源于这样一个事实,即使用InstanceSpecification指定链接仅适用于关联:每个想要为链接的InstanceSpecification提供插槽的InstanceSpecifications都必须有一个Association作为分类器。但是-链接可以存在,即使没有指定它们。它们可以由其他模型元素指定。 指定模型元素的其他链接包括 连接器 在复合结构图中或 信息 在交互图中或 属性 和 参数 在类图中。 沟通图只是展示互动的一种方式。它们具有与序列图相同的底层元模型实例。因此,即使生命线之间有线,也没有相应的模型元素。它们只是为了有一个连接消息符号的位置(见表17.4通信图中包含的图形路径)。 消息可以引用连接器。因此,您可以将通信图中的线视为该连接器的可视化表示。但是,没有必要对连接器进行明确的建模。有些工具需要连接器,但在规范中,连接器是可选的。 正如你所说,没有刻板印象来描述物体是如何相互了解的。你需要定义自己的。然而,还有其他可能性:生命线表示一个可连接的元素,它可以是参数或属性(或变量,但没有人使用它们)。通过查看所表示的属性,可以发现它是全局属性还是局部属性,以及它是关联端。 话虽如此,但有一个陷阱。正式表示的所有元素必须直接或间接属于交互的上下文类(17.12.17.5中的same_classifier约束)。在我遇到的大多数情况下,这种上下文只是系统。这意味着,所有属性都必须是全局的。我与本节的作者进行了长时间的交谈,发现其想法是,交互应该属于协作,与系统的连接是通过CollaborationUses和roleBindings实现的。这就是为什么MagicDraw会自动为每个交互创建协作的原因。 这增加了另一个间接级别,正如我们所知,它解决了;-)计算机科学中的所有问题。幸运的是,大多数工具都没有强制执行这一规则,所以我们可以自由地让生命线表示系统真实组件的属性和参数。 |
![]() |
Daniel · 制作与结构实例交互的方法 7 年前 |
![]() |
sergio · 将数据从活动发送到已创建的片段 7 年前 |
![]() |
Nat · 如何在UWP应用程序中创建COM对象?(C#) 9 年前 |
![]() |
Amol Borkar · 与其他应用程序的交互[已关闭] 11 年前 |
![]() |
Harry Lime · 嵌入式C++类交互 11 年前 |