UML类图:导航和所有权之间的区别 [英] UML Class diagram: difference between Navigation and Ownership

查看:10
本文介绍了UML类图:导航和所有权之间的区别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我阅读了

中的帖子 但是我仍然不清楚&导航和&所有权之间的区别。同时发布了UML2.5。

本规范说明如下:

类拥有的关联端始终是可导航的,而那些 关联所拥有的可能是可导航的,也可能不是。

  1. 这意味着下面的示例c无效。示例a和b是有效的,在这两种情况下,右端都是可导航的。但是,在示例b中,左端不可导航。

    我说的对吗?

  2. 导航和所有权在语义上有什么区别?当所有权强制类具有属性时,导航是访问相反类的通用方式吗?

推荐答案

规格说明

点符号用于表示关联端所有权,其中点表示该行另一端的Class拥有其类型为点接触的Class的属性。

因此ab有效,而c是陌生的。假设左侧开始类A,右侧为类B。如果A拥有B类型的属性,则它可以导航到该属性。大小写b显式添加了A可以导航到B的信息,这些信息使用点已经很明显了。如果cB拥有A类型的属性(因此可以导航)。此外,您指示从A导航到B,而不显示所有权。所以这很奇怪。

所有权只是表示有东西(指针)可以导航到另一个对象。引用规范(第126页):

可能会显示导航箭头,但如果显示,它们应与协会两端的导航一致。

及更高版本(第201页):

在实践中,通常可以方便地取消一些表示关联末端可导航性的箭头和十字。一致性工具可以提供用于显示导航箭头和十字的各种选项。与点标记一样,这些选项适用于完整图表级别。

  • 显示所有箭头和十字。导航及其缺席是完全明确的。
  • 取消显示所有箭头和十字。无法对导航做出任何推论。
  • 取消所有十字。抑制双向可导航性关联的箭头,仅显示单向可导航性关联的箭头。在这种情况下,双向导航无法与根本没有导航的情况区分开来;然而,后一种情况在实践中很少发生。

导航没有实际用途(在大多数情况下)。您可以通过添加角色名称来显示导航,这些名称清楚地表明AB视为role。末尾有一个十字符号,明确禁止导航。这在某些情况下可能很有用。

可能需要注意的是,规范中对导航";(只需对出现的内容进行grep)没有提及,而";所有权和所有权则使用得更多。这可能是因为所有权是最近引入的。

这篇关于UML类图:导航和所有权之间的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆