UML中双向关系的特点?
Posted
技术标签:
【中文标题】UML中双向关系的特点?【英文标题】:Characteristics of bidirectional relationships in UML? 【发布时间】:2016-05-13 21:18:15 【问题描述】:考虑一下:
据我所知,如果 1 a
与 b
相关,并且 a
知道 b
所以 a
能够向 b
发送消息,但 b
是不知道a
所以b
无法向a
发送消息。
另一方面,如果 2 a
与 b
相关,并且双方都知道对方,则双方都可以向对方发送消息。
但我的问题是,当关系不是关联而是聚合时,那该怎么办?聚合关系能否在 UML 中具有双向导航性,以便两个实例相互了解?
如果a
拥有b
,因此a
知道b
。 (换句话说,a
能够向b
发送消息)。但是反过来呢,b
知道a
吗?还是永远不会是这样?或者这只是没有在图中指定,这可能是两种方式?并且,如果b
必须知道a
将如何表达(我从未见过另一端带有箭头的聚合线)?
所有这些都适用于作曲吗?
与此稍微相关的另一件事我想知道,非双向关联可以有两个角色吗?
据我所知,这是不可能的,因为非双向关系是当只有一个相关实例知道另一个时的关系,而角色意味着一个实例如何感知另一个实例,所以我们需要两个实例都知道彼此能够扮演两个角色,这是正确的吗?
【问题讨论】:
【参考方案1】:根据 UML 2.5 的定向关联:
DirectedRelationship 表示源模型元素集合和目标模型元素集合之间的关系。
所以这并没有说太多。事实上,你可以简单地离开它。有一个不可导航的概念明确排除了导航。
所有权不是由箭头显示,而是由拥有类附近的一个点显示。
上层建筑的另一个引用(第 11.5 章中的第 200 页关联):
过去通常根据非正式约定使用可导航表示法,即假定不可导航端归协会所有,而可导航端假定归另一端的分类器所有。此约定现已弃用。聚合类型、可导航性和最终所有权是独立的概念,每个都有自己的明确表示法。类所拥有的关联端始终是可导航的,而关联所拥有的则可能是可导航的或不可导航的。
如果您指定的角色名称明确表示您可以导航到指定的类。
【讨论】:
以上是关于UML中双向关系的特点?的主要内容,如果未能解决你的问题,请参考以下文章