首页 > 解决方案 > UML 关联 - 什么是“角色”的代码等价物?

问题描述

UML 关联角色的代码等价物是什么?例如,我有下面的 UML 图:

UML 示例图

从 Graph 类到 GraphNode 类有一个关联箭头。关联箭头旁边是文本-nodesMap 0..*。我知道这是与角色名称nodesMap的关联关系。关系从0到多。关于这个图表及其代码等价物,我有两个问题:

  1. 角色前面的破折号是什么意思?节点映射是私有的吗?
  2. Graph 类中的nodesMap 是什么?它是 Graph 类的成员吗?此外,如果它是一个成员,它的类型是什么?为什么它没有与其他变量一起列出,例如在 GraphNode 类中(例如,组件属性)?

标签: javaoopuml

解决方案


角色前面的破折号是什么意思?节点映射是私有的吗?

是的,符号是:

  • +: 上市
  • -: 私人的
  • #: 受保护
  • ~: 包裹

Graph 类中的nodesMap 是什么?它是 Graph 类的成员吗?

是的,对于 Java 语言,nodeMap是一个属性。在 UML 中,这意味着属性 end 由Graph拥有。

此外,如果它是一个成员,它的类型是什么?为什么它没有与其他变量一起列出,例如在 GraphNode 类中(例如,组件属性)?

它的类型是GraphNode的集合,因为关系的目标是类GraphNode并且多重性是 0..* 意味着任何数字 ≥ 0。支持集合的方式是免费的,无需额外信息说明它是否已排序和/或元素是独一无二的等

请注意,您还可以在类中的其他属性中表示该属性- nodesMap: GraphNode [0..*]


推荐阅读