0

考虑一下:

在此处输入图像描述

据我所知,情况 1与 1a相关b,并且a知道b因此a能够向 发送消息b,但b不知道a因此b无法向 发送消息a

另一方面,如果情况 2a与 相关b,并且双方都知道对方,则双方都可以向对方发送消息。

但我的问题是,当关系不是关联而是聚合时怎么办?聚合关系是否可以在 UML 中具有双向导航性,以便两个实例相互了解?

万一a拥有b,因而a知晓b。(换句话说a,能够向 发送消息b)。但反过来呢,b知道a吗?还是永远不会是这样?或者这只是没有在图中指定,这可能是两种方式?并且,如果b必须知道a如何表达(我从未见过另一端带有箭头的聚合线)?

所有这些都以同样的方式适用于作曲吗?

与此稍微相关的另一件事我想知道,非双向关联可以有两个角色吗?

据我所知,这是不可能的,因为非双向关系是当只有一个相关实例知道另一个时的关系,而角色意味着一个实例如何感知另一个实例,所以我们需要两个实例都知道彼此能够扮演两个角色,这是正确的吗?

4

1 回答 1

0

根据 UML 2.5 的定向关联:

DirectedRelationship 表示源模型元素集合和目标模型元素集合之间的关系。

所以这个不多说。事实上,你可以简单地离开它。有一个不可导航的概念明确排除了导航。

所有权不是由箭头显示,而是由拥有类附近的一个点显示。在此处输入图像描述

上层建筑的另一个引用(第 11.5 章中的第 200 页关联):

过去经常根据非正式约定使用可导航表示法,即假定不可导航端归协会所有,而可导航端则假定归另一端的分类器所有。此约定现已弃用。聚合类型、可导航性和最终所有权是独立的概念,每个都有自己的明确表示法。类所拥有的关联端始终是可导航的,而关联所拥有的那些可能是可导航的或不可导航的。

如果您指定一个明确表示您可以导航到命名类的角色名称。

于 2016-02-04T10:39:48.390 回答