考虑到这一点:
据我所知,案例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
将如何表达(我从未见过另一端带有箭头的聚合线)?
所有这些对于作文都适用吗?
与此有点相关的另一件事我想知道,非双向关联可以有两个角色吗?
据我所知,这是不可能的,因为非双向关系是一种关系,只有一个相关实例知道另一个,而一个角色意味着一个实例如何看待另一个,所以我们需要两个实例都知道彼此能够有两个角色,这是正确的吗?
答案 0 :(得分:0)
根据UML 2.5的定向关联:
DirectedRelationship表示源模型元素集合与目标模型元素集合之间的关系。
所以这并没有多说。事实上,你可以放弃它。有一个不可导航的概念明确排除导航。
上层建筑的另一个引用(第11.5章协会中的第200页):
根据非正式惯例,过去经常使用导航符号,其中假定非导航端由协会拥有,而假定导航端由对方的分类器拥有。现在不推荐使用此约定。聚合类型,导航性和最终所有权是单独的概念,每个概念都有自己的显式表示法。类所拥有的关联端始终是可导航的,而关联所拥有的关联端可以是可导航的。
如果您指定一个明确意味着您可以导航到指定类的角色名称。