【发布时间】:2014-02-28 21:47:34
【问题描述】:
我在为我的 JavaScript APP 绘制准确的 UML 类图时遇到了一些问题。我已经阅读了几个 UML 参考资源,但仍然没有找到适合我的情况的答案,因为所有示例都是基于 C++/Java 的经典继承和类模型。
我想用构造函数和原型对象的扩展来表示自定义 JavaScript 对象的创建,这与 C++/Java 类实例化完全不同。
你会如何用 UML 类图来表示我的代码的这个简化版本?
var Book = function(title, author) {
this.title = title || 'No title specified';
this.author = author || 'No author specified';
}
Book.prototype.isDigital = false;
Book.prototype.titleDisplay = function() {
alert(this.title);
};
var theHobbit = new Book ("The Hobbit", "J.R.R. Tolkien");
注意: 我特别想在图中展示所有涉及的对象(Book、Book.prototype 和 theHobbit)是如何相互关联的,并展示在原型中定义的参数与在构造函数中定义的参数。 我知道我可以假装 Book 是一个“经典”类,并将它画成 Java,简化特定的 JavaScript 继承机制,但我确信 UML 足够灵活,可以准确地描述我的情况。
是否有专门针对 JavaScript 项目的 UML 指南?
【问题讨论】:
-
我认为没有,听到任何关于它的消息都会感到惊讶。如果我是你,我会“假装” book 是一个具有所有这些公共属性的普通类(与私有属性相反,但你没有)。此外,创建将在序列图中以相同的方式表示。我不认为 UML 应该区分语言具有哪种类型的对象模型。
标签: javascript object uml class-diagram prototype-programming