在 UML 类图中,是否建议将关联关系与枚举类进行关联?

23

我正在设计一个类图,但有些疑虑:

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

例如,有一个名为BankAccount的类,它有一个名为type: BankAccountType (enum)的属性,以及另一个名为bank: Bank (catalog class)的属性。

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

2个回答

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

The two ways of representing attributes in UML

属性声明的两种风格在语义上是等价的:它们完全表示相同的意思。换句话说,你选择哪种方式只是一个风格问题。

使用属性可以使图表更简单,并且在某些工具中必须使用属性才能在模型的树状视图中看到该属性。

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

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


-3

一个简单的关联就可以解决问题。聚合表示包含类的生命周期与容器类相关联。

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

此外,为您找到了这个:UML类图枚举


实际上你是不对的。聚合表明包含的“类对象”的生命周期与类的对象相关联。聚合不是正确的答案。正确的答案来自@Uffe。 - sgowd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接