【问题标题】:is it recommended to make associations to enum classes in uml class diagram?是否建议在 uml 类图中与枚举类建立关联?
【发布时间】:2011-11-17 12:17:24
【问题描述】:

我正在设计一个类图,我有一个疑问:

我有一个类,它有几个属性引用 java 枚举和其他将被映射为数据库目录的类。

例如,有一个名为 BankAccount 的类,它有一个名为 type:BankAccountType(枚举)的属性,另一个是 bank:Bank(目录类)。

是否建议标记类之间的关联或可以省略?如果是,它们应该被聚合(一个 BankAccount 有一个 bankAccountType)还是简单地关联?

提前谢谢你。

【问题讨论】:

    标签: class enums uml associations diagram


    【解决方案1】:

    无论属性类型是否为枚举,在 UML 中都有两种表示属性的方式:作为适当的属性,以及作为定向关联。

    这两种类型的属性声明在语义上是等价的:它们的意思完全相同。换句话说,你选择哪一个取决于风格。

    使用属性可以使图表更简单,并且在某些工具中需要属性才能在模型的树视图中可见。

    使用定向关联意味着您必须在图中包含目标类型(枚举),这意味着您可以看到文字。当然,你也可以在其他情况下包含它,就像我在上面对 An_Enum 所做的那样。

    我通常不使用聚合或组合进行代码级建模;我觉得它们更适合描述类之间更抽象的关系(如在信息模型中),并且在概念上它们与源代码中的任何内容都不匹配。属性可以,可能通过与用作局部变量类型或调用其方法的类的“依赖”或“使用”关系来补充。

    【讨论】:

      【解决方案2】:

      一个简单的关联就可以解决问题。聚合表明被包含类的生命周期与被包含类绑定。

      来自维基百科: 当一个类是其他类的集合或容器时,可能会发生聚合,但其中包含的类对容器没有很强的生命周期依赖性——本质上,如果容器被销毁,其内容不会。 http://en.wikipedia.org/wiki/Class_diagram#Aggregation

      另外,为您找到了这个:UML class diagram enum

      【讨论】:

      • 其实你是不对的。聚合表明包含的“类的对象”的生命周期与类的对象相关联。聚合不是正确的答案。正确答案来自@Uffe
      猜你喜欢
      • 2016-08-02
      • 2018-07-31
      • 2010-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多