UML类图:导航和所有权之间的区别 [英] UML Class diagram: difference between Navigation and Ownership
本文介绍了UML类图:导航和所有权之间的区别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我阅读了
中的帖子- association owned by classifier and association owned by relationship in UML
- Setting the association end ownership in UML: What does it mean with respect to generated code in visual paradigm (or in other UML tools)?
- http://www.uml-diagrams.org/association.html
本规范说明如下:
类拥有的关联端始终是可导航的,而那些 关联所拥有的可能是可导航的,也可能不是。
这意味着下面的示例c无效。示例a和b是有效的,在这两种情况下,右端都是可导航的。但是,在示例b中,左端不可导航。
我说的对吗?
导航和所有权在语义上有什么区别?当所有权强制类具有属性时,导航是访问相反类的通用方式吗?
推荐答案
规格说明
点符号用于表示关联端所有权,其中点表示该行另一端的Class拥有其类型为点接触的Class的属性。
因此a和b有效,而c是陌生的。假设左侧开始类A
,右侧为类B
。如果A
拥有B
类型的属性,则它可以导航到该属性。大小写b显式添加了A
可以导航到B
的信息,这些信息使用点已经很明显了。如果cB
拥有A
类型的属性(因此可以导航)。此外,您指示从A
导航到B
,而不显示所有权。所以这很奇怪。
所有权只是表示有东西(指针)可以导航到另一个对象。引用规范(第126页):
可能会显示导航箭头,但如果显示,它们应与协会两端的导航一致。
及更高版本(第201页):
在实践中,通常可以方便地取消一些表示关联末端可导航性的箭头和十字。一致性工具可以提供用于显示导航箭头和十字的各种选项。与点标记一样,这些选项适用于完整图表级别。
- 显示所有箭头和十字。导航及其缺席是完全明确的。
- 取消显示所有箭头和十字。无法对导航做出任何推论。
- 取消所有十字。抑制双向可导航性关联的箭头,仅显示单向可导航性关联的箭头。在这种情况下,双向导航无法与根本没有导航的情况区分开来;然而,后一种情况在实践中很少发生。
导航没有实际用途(在大多数情况下)。您可以通过添加角色名称来显示导航,这些名称清楚地表明A
将B
视为role
。末尾有一个十字符号,明确禁止导航。这在某些情况下可能很有用。
可能需要注意的是,规范中对导航";(只需对出现的内容进行grep)没有提及,而";所有权和所有权则使用得更多。这可能是因为所有权是最近引入的。
这篇关于UML类图:导航和所有权之间的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文