通过属性定义关联的多重性

Define the multiplicity of an association by an attribute

在示例中,我让类型 "Folder" 的每个对象都有一个类型 "File" 的数组,名称为 "content",大小为 "n" 作为私有属性(只是说出我对它的理解,以确保我在那里没有错)。这就是我在大多数示例中看到的方式,但我从来不明白 "n" 现在是什么。它是 "Folder" 对象的另一个属性,还是我们在 UML 图的另一部分或其他完全指定的东西?

我想要实现的是 "Folder" 类型的每个对象都有一个额外的属性来指定 "content" 数组的大小。

当然,您不仅可以写0..*,还可以使用任何具体数字。如果那个数字有一些外部定义,你可以在那里使用 n,因为你有它。

external definition表示"not defined by class diagram elements, except notes"。您需要在 class 图表页面上说出但由于 UML 限制而不能说的所有内容,都应该放在 note 中。

因此,n 可以在页面上的适当注释或某些不同的文档或两者中定义。

正如@Kilian 所提到的,在此类变量的一些更复杂的依赖关系的情况下,您可以使用约束。这种方式在我看来是最强大的。

但是如果n没有objective定义或依赖,而是一个可以有任何意义的简单变量,那么使用规则是正确的,比如0..*,或 1..*,或者可能是 3..5,根据您正在使用的现实情况。