在javascript中,我有一个包含对象数组等的对象大数据结构......我应该使用什么样的图表来表示它们?特别是,我想展示对象内部的数组与其包含的对象的构造函数之间的关系。
var Bar = function () {
this.a;
this.b;
}
var Foo = function () {
this.a;
this.b;
this.c = []; // Array of Bar
}
要在 UML 中表示对象的结构,可以使用:
后者在这里似乎更有意义,并且有多种方法可以代表您的情况。
首先,如果您只想专注于
Bar
,将 Foo 的细节留给另一张图,您可以仅显示具有多重性的属性 Foo (*
代表无界,即大小从 0 到无穷大):
但是如果你想展示这两个课程,你可以选择:
现在的问题是,它显示了 Foo 和 Bar 之间的关联,但它没有显示 Bar 知道它的 Foos,但 Foo 不知道它所属的 Bar 的任何信息。
数组的完美表示法是点表示法,在 foo 一侧放一个小点。但不幸的是,这种表示法并不为人所知,许多免费和入门级工具都不支持它。
另一种方法是使用可导航性符号,使用箭头来显示链接的方向(如果需要,在另一侧使用 X 来明确说明相反方向上不存在导航,可惜大多数建模者不这样做)了解这个十字架的含义):
P.S: 正如 UML 大师 qwerty_so 在另一个答案的评论中指出的那样,与简单关联相比,共享聚合不会添加任何有用的信息,因此应尽可能避免。此外,白色菱形不足以表明一个 Bar 有多个 Foo,因为相同的符号也可用于 an 和 b。 多重性应该为数组明确指示。