Uml类图替代map属性

问题描述 投票:0回答:2

通过搜索,我发现在UML中,聚合(假设它被正确使用)可用于表示类中的属性。

例如,enter image description here

(假设列可以独立)

然后,使用这样的示例,如果我想替换属性:Column [] with map来表示列的名称,使用关联类是否正确如下所示? (如果我不愿意将Column类中的列名作为属性)

enter image description here

uml class-diagram
2个回答
1
投票

关联类与简单关联一起使用。它们具有m-1-1-n多重性。共享聚合(如您所用)没有定义的语义(我建议不要使用它,除非您有特定于域的文档用途)。将预期的多重性放在关联的任何一侧更好。

关联类连接两个类,添加属性和/或操作。您的示例是“非常规的”,因为表/列具有简单的关系,不需要关联类。一般的例子是学生/讲座关系,您可以在其间放置一个关联课程来记录考试成绩,时间等。


0
投票

是的,我认为这是一种有效的建模方式,你可以使用某种关键字符串来识别这个ColumnTable

如果有许多可能的实现,使用Map是一个,所以它不是真正等于。

使用关联类进行建模的优势在于,您的模型保持在更抽象的功能级别,并省略了实现细节。

BTW。我会在TableColumn之间使用一个组合而不是聚合来组合,因为两者之间存在明显强烈的所有权关系和生命周期依赖关系。

© www.soinside.com 2019 - 2024. All rights reserved.