【问题标题】:UML sequence diagram: Is it possible to demonstrate an object being passed as an argument to another object's function?UML 序列图:是否可以演示一个对象作为参数传递给另一个对象的函数?
【发布时间】:2021-10-24 18:20:34
【问题描述】:

接受(1)我想使用序列图而不是类、通信或任何其他图和(2)我没有使用官方 UML 规范并准备改变规则,问题是:是可以演示一个对象作为参数传递给另一个对象的函数调用吗?例如,在下面的 sn-p 中,object1 的函数“add”采用参数“object2”(添加它们各自的属性),但图表隐藏了这一事实。上述可以接受吗?如果是这样,最好的方法是什么?

提前致谢。

var object1 = new O("object1");
var object2 = new O("object2");
object1.add(object2);
alert(object1.name);  // object1 + object2

function O(param) {
    this.name = param;
    this.add = function(param) {
        this.name = this.name + " + " + param.name;
    };
}

【问题讨论】:

  • 我不明白隐藏了哪些信息。 object2 作为 object1.add1 方法调用的值传递?它包含name 属性?这些属性将被连接起来吗? object2 是 O 型的?
  • object2object1.add() 之间没有图表交流,因为没有更好的词。
  • 嗯,你使用object2作为message的值。您不必另外将其链接到图形表示。
  • UML 不适用于图形编程。使用代码进行编程,使用 UML 进行建模。就这么简单。用代码建模会让你走得更远,用 UML 编码会让你麻木。

标签: javascript uml sequence-diagram


【解决方案1】:

在您的示例中,object1 和 object2 之间的唯一通信是 object1 获取 object2 的名称。您可以通过从 object1 的生命线到 object2 的生命线绘制一个箭头来可视化这一点,标记为“获取名称”。

在实践中,getter 通常不可视化,因为过多的细节可能会混淆主要流程。您表明 object2 作为消息参数传递给 object1 的事实已经暗示 object1 将对 object2 执行某些操作。

【讨论】:

    猜你喜欢
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多