UML序列图,调用

时间:2017-12-15 08:16:22

标签: uml sequence-diagram visual-paradigm

我们假设我们有三个类A, BC,以及一个类型为a的实例(分别为b / cA(分别为B / C)。 假设ba的属性,而cb的属性。

a的方法中,调用以下内容:b.c.operation()

我们如何在序列图中表示这一点?

3 个答案:

答案 0 :(得分:4)

根据Law of Demeter,对象应该只与其自己的邻居直接通信。所以在你的情况下,a根本不应该调用b.c.operation(),因为c不是的邻居。相反,B类应该为此提供接口,例如 doCOperation(){c.operation();} 这应该是应该打电话的。

所以操作顺序为beocomes:

  1. 来电b.doCOperation()
  2. b在c.Operation()内调用doCOperation()并将结果返回给。
  3. 现在快速浏览序列图,它应该更容易。

答案 1 :(得分:1)

在编程中,b.c.operation()

是不好的
  

应该在班级中隐藏所有数据(应该是私人的)。

但如果我们有b.c.operation(),则在编译器中它会更改为(b.c).operation() 所以你的代码等于这段代码:

t=b.c;
t.operation();

答案 2 :(得分:0)

这是你要找的东西吗?您可以在https://www.zenuml.com处尝试。

enter image description here