UML 多重性:“0..*”与“*”

UML Multiplicity: "0..*" vs "*"

在 UML Class 图中表示多重性的 0..* 和 * 之间有什么区别吗?我无法在网上找到关于多重符号的综合指南。对我来说,他们似乎在概念上说的是同一件事。

没有任何区别,或者至少我从未听说过有人以不同方式使用它们。

对我来说,0..* 更明确,因为它明确表示 0 是预期的情况。在另一种情况下,你可以写 1..* 来表明 0 是不允许的。

一般来说,我会选择一种风格并坚持使用它以保持一致性。

虽然 Dave 的回答是正确的,但我想补充一点,这不仅仅是个人意见的问题。 UML 规范明确说明了此符号快捷方式:

UML 2.5.1, p.35: If the lower bound is equal to the upper bound, then an alternate notation is to use a string containing just the upper bound. For example, “1” is semantically equivalent to “1..1” multiplicity. A multiplicity with zero as the lower bound and an unspecified upper bound may use the alternative notation containing a single star “ * ” instead of “0..*” multiplicity.