在 UML 图类中指定集合类型

Posted

技术标签:

【中文标题】在 UML 图类中指定集合类型【英文标题】:Specify type of collection in UML Diagram Class 【发布时间】:2014-01-30 13:52:06 【问题描述】:

我有一个问题,我想使用 UML 类图来表示什么。 我有一个 A 类,它有自己的名称和 B 元素的集合(0 .. *)。 然而,B 类是抽象的,因此 A 中的元素集合可以是 B1 或 B2(B 的特化)。 我想澄清一个事实,即集合必须完整地呈现给所有 B1 或 B2,这不允许混合不同的元素,但我不知道如何在 UML 上表示这一点。您的建议肯定会有所帮助。

+---+
| A |
+---+
  |
  |0..*
+---+    +----+
| B |<---| B1 |
+---+    +----+
  ^
  |
+----+
| B2 |
+----+

【问题讨论】:

【参考方案1】:

根据一个抽象集合(或和接口)制作两个真实集合。从 A 引用这个抽象集合。由于它是抽象的,因此您必须采用这些可实例化的其中之一来实现。这是抽象类的另一种用法。

恐怕,我无法用这么漂亮的老式字母数字图形来管理它。

另外,我认为,无论如何添加解释说明会更好。因为这可能很难理解。

编辑:我想评估您希望在班级层面实现这一概念的愿望,而不是 if-then-else 。这样我们就可以真正保证集合中不会有混合类型。

【讨论】:

【参考方案2】:

UML 中的集合是隐式定义的。如果属性或关联端的多重性设置为多个,则为集合。集合中的元素类型是分配给属性或关联端的类型。集合类型由参数 isOrdered、isUnique 定义。它由靠近属性(关联端)的关键字描述。

【讨论】:

以上是关于在 UML 图类中指定集合类型的主要内容,如果未能解决你的问题,请参考以下文章

在 RavenDB 中指定集合名称

list集合中指定字段去重

ArraryList方法

ArraryList方法

Java中 ArrayList类常用方法和遍历

在 Ktor 中指定要序列化为 JSON 的类字段