Javascript 构造函数和原型是什么样的图表?

问题描述 投票:0回答:2

在javascript中,我有一个包含对象数组等的对象大数据结构......我应该使用什么样的图表来表示它们?特别是,我想展示对象内部的数组与其包含的对象的构造函数之间的关系。

var Bar = function ()  {
    this.a;
    this.b;
}

var Foo = function () {
    this.a;
    this.b;
    this.c = []; // Array of Bar
}
javascript arrays uml diagram
2个回答
0
投票

您可以使用末尾带有菱形线来代替箭头,这意味着像

这样的东西

财产的一部分
Bar -----<> Foo

(正式称为聚合,你可以在wikipedia上找到它)


0
投票

要在 UML 中表示对象的结构,可以使用:

  • 一个对象图表示一些具体对象及其在特定时刻的关系的快照;或
  • a 类图,表示一系列对象(称为类)共享的一些通用结构特征。

后者在这里似乎更有意义,并且有多种方法可以代表您的情况。

首先,如果您只想专注于

Bar
,将 Foo 的细节留给另一张图,您可以仅显示具有多重性的属性 Foo (
*
代表无界,即大小从 0 到无穷大):

但是如果你想展示这两个课程,你可以选择:

现在的问题是,它显示了 Foo 和 Bar 之间的关联,但它没有显示 Bar 知道它的 Foos,但 Foo 不知道它所属的 Bar 的任何信息。

数组的完美表示法是点表示法,在 foo 一侧放一个小点。但不幸的是,这种表示法并不为人所知,许多免费和入门级工具都不支持它。

另一种方法是使用可导航性符号,使用箭头来显示链接的方向(如果需要,在另一侧使用 X 来明确说明相反方向上不存在导航,可惜大多数建模者不这样做)了解这个十字架的含义):

P.S: 正如 UML 大师 qwerty_so 在另一个答案的评论中指出的那样,与简单关联相比,共享聚合不会添加任何有用的信息,因此应尽可能避免。此外,白色菱形不足以表明一个 Bar 有多个 Foo,因为相同的符号也可用于 an 和 b。 多重性应该为数组明确指示

© www.soinside.com 2019 - 2024. All rights reserved.