用于javascript的UML?

abe*_*ier 12 javascript uml object-diagram

我正在寻找一种图形化表示javascript对象的方法......

我知道有UML,但是例如,如何表示2个对象之间的,例如:

var a, b;

a = {};
b = Object.create(a);
Run Code Online (Sandbox Code Playgroud)

直观地说,我会画出这样的东西:

+-----+
|b    |
|-----|
|     |
+--+--+
   |     +-----+
   +---->|a    |
         |-----|
         |     |
         +-----+
Run Code Online (Sandbox Code Playgroud)

但在UML中有一个不错的代表吗?

那么mixins怎么样?

c = $.extend({}, a, b)

+-----+           +-----+
|a    |           |b    |
|-----|           |-----|
|     |<----------|     |
+-----+           +-----+
   +     +-----+
   |     |c    |
   |     |-----|
   +---->|     |
         +-----+
Run Code Online (Sandbox Code Playgroud)

rom*_*333 7

您需要知道的第一件事是JavaScript使用基于原型的继承.这意味着类和实例之间没有区别,就像其他OO语言(如Java)一样.只有对象.其中一个含义是区分类对象图是没有意义的.

第一个例子:

var a, b;

a = {};
b = Object.create(a);
Run Code Online (Sandbox Code Playgroud)

这是继承 - 对象b继承对象的属性a.

在UML中对此进行建模的正确方法是此类/对象图:

对象b继承自对象a

Mixins可以被视为多重继承的形式,对象c是从对象继承属性,a并且b图表可能如下所示:

对象c继承自a和b


Rob*_*tMS 3

看起来您正在尝试在类图中显示对象实例之间的关系。这实际上是行不通的;您可能想尝试使用 UML 实例图(也可以称为对象图)。类图旨在以静态方式捕获系统概念、它们的结构及其关系。从类图开始,然后转到实例图可能会有所帮助,您可以在对象实例的“槽”或属性中插入一些值,以查看类图中的模型是否有效。