我正在设计一个类图,我有一个疑问:
我有一个类,它有几个引用java枚举的属性和其他将被映射为db目录的类。
例如,有一个名为BankAccount的类,它有一个名为type的属性:BankAccountType(enum),另一个是bank:Bank(目录类)。
是否可以标记类之间的关联,或者可以避免它?如果是,它们应该汇总(BankAccount是bankAccountType)还是只是关联?
提前谢谢。
答案 0 :(得分:23)
无论属性类型是否为枚举,有两种方法可以在UML中表示属性:作为适当的属性,以及作为有向关联。
两种样式的属性声明在语义上是等价的:它们的意思完全相同。换句话说,你选择哪一个归结为风格问题。
使用属性可以获得更简单的图表,并且在某些工具中需要使属性在模型的树视图中可见。
使用有向关联意味着您必须在图表中包含目标类型(枚举),这意味着您可以看到文字。当然,你可以把它包含在另一个案例中,就像我上面的An_Enum一样。
我通常不会使用聚合或组合进行代码级建模;我觉得它们更适合描述类之间更抽象的关系(如在信息模型中),从概念上讲它们与源代码中的任何内容都不匹配。属性可以通过“依赖”或“使用”关系补充到用作局部变量类型或调用其方法的类。
答案 1 :(得分:0)
一个简单的关联可以解决问题。聚合显示包含的类的生命周期与包含类相关联。
来自维基百科: 当一个类是其他类的集合或容器时,聚合可能发生,但是所包含的类对容器没有强烈的生命周期依赖性 - 本质上,如果容器被销毁,其内容则不是。 http://en.wikipedia.org/wiki/Class_diagram#Aggregation
另外,为您找到了这个:UML class diagram enum