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

Uml 通过属性定义关联的多重性,uml,Uml,在这个例子中,我让“Folder”类型的每个对象都有一个名为“content”大小为“n”的“File”类型数组作为私有属性(只是说明我对它的理解,以确保我在这里没有错)。我在大多数例子中都是这样看的,但我从来都不明白“n”现在是什么。它是“Folder”对象的另一个属性,还是我们在UML图的另一部分中指定的某个属性,还是完全其他的属性 我试图实现的是,“Folder”类型的每个对象都有一个附加属性,用于指定“content”数组的大小 当然,您不仅可以写0..*,还可以使用任何具体的数字。如果

在这个例子中,我让“Folder”类型的每个对象都有一个名为“content”大小为“n”的“File”类型数组作为私有属性(只是说明我对它的理解,以确保我在这里没有错)。我在大多数例子中都是这样看的,但我从来都不明白“n”现在是什么。它是“Folder”对象的另一个属性,还是我们在UML图的另一部分中指定的某个属性,还是完全其他的属性


我试图实现的是,“Folder”类型的每个对象都有一个附加属性,用于指定“content”数组的大小

当然,您不仅可以写0..*,还可以使用任何具体的数字。如果该数字有一些外部定义,您可以使用它

外部定义
表示“除注释外,未由类图元素定义”。你需要在类图页面上说的,但由于UML的限制不能说的,都应该放在
注释中

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

正如@Kilian所提到的,对于这些变量的一些更复杂的依赖关系,您可以使用约束。在我看来,这种方式是最有力的


但是,如果
n
没有客观的定义或依赖关系,但它是一个简单的变量,可以有任何意义,那么根据您正在处理的实际情况,使用规则是正确的,例如0..
*
,或者1..
*
,或者3..5。

该图是不正确的。n应为0..*@JimL。谢谢,但似乎还是有一种方法可以将n或m等变量作为多重性的参数。多重性是一个规则,而不是一个变量。如果使用集合来表示属性“content”,集合将跟踪其中有多少内容。@JimL。哦,好吧,现在我明白了。所以它基本上就像Java中的数组一样工作。感谢您的一份可能的副本。您应该提到,在这种情况下,约束可以用来表示属性和数组维度之间的限制或相关性。@ThomasKilian同意并添加到::-)我甚至认为它们是最强大的工具。