【问题标题】:UML association - what is the code equivalent of a 'role'?UML 关联 - 什么是“角色”的代码等价物?
【发布时间】:2020-04-29 18:33:32
【问题描述】:

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

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

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

【问题讨论】:

标签: java oop uml


【解决方案1】:

角色前面的破折号是什么意思? nodesMap 是私有的吗?

是的,符号是:

  • +:公开
  • -:私人
  • #:受保护
  • ~:包

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 2013-04-07
    • 2019-08-14
    • 1970-01-01
    相关资源
    最近更新 更多