UML中双向关系的特征?

时间:2016-02-04 10:07:11

标签: uml aggregation bidirectional-relation

考虑到这一点:

enter image description here

据我所知,案例1 ab相关,而a知道b因此a能够发送消息到b,但b不知道a,因此b无法向a发送消息。

另一方面,如果2 ab相关,并且两者都相互了解,则两者都能够向另一方发送消息。

但我的问题是当关系不是关联而是聚合时呢?聚合关系是否可以在UML中具有双向可挖掘性,因此两个实例都能相互了解?

如果a拥有b,则a知道b。 (换句话说,a能够向b发送消息。但另一方面呢,b是否知道a?或者这种情况永远不会是这样吗?或者这只是图中没有说明,这可能是两种方式?并且,如果b必须知道a将如何表达(我从未见过另一端带有箭头的聚合线)?

所有这些对于作文都适用吗?

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

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

1 个答案:

答案 0 :(得分:0)

根据UML 2.5的定向关联:

  

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

所以这并没有多说。事实上,你可以放弃它。有一个不可导航的概念明确排除导航。

所有权不是通过箭头显示,而是通过拥有类附近的点显示。 enter image description here

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

  

根据非正式惯例,过去经常使用导航符号,其中假定非导航端由协会拥有,而假定导航端由对方的分类器拥有。现在不推荐使用此约定。聚合类型,导航性和最终所有权是单独的概念,每个概念都有自己的显式表示法。类所拥有的关联端始终是可导航的,而关联所拥有的关联端可以是可导航的。

如果您指定一个明确意味着您可以导航到指定类的角色名称。