UML序列图,调用
假设我们有三个类UML序列图,调用,uml,sequence-diagram,visual-paradigm,Uml,Sequence Diagram,Visual Paradigm,假设我们有三个类A,B和C,还有一个A(resp.B/C)类型为A(resp.B/C)。 假设b是a的属性,c是b的属性 在a的方法中,调用以下内容:b.c.operation() 我们如何在序列图中表示这一点?根据,一个对象应该只与它自己的邻居直接通信。因此,在您的情况下,a根本不应该调用b.c.operation(),因为c不是a的邻居。相反,类B应该为此提供一个接口,例如 doCOperation(){c.operation();} 而这正是a应该称之为的 因此,操作的顺序是: a调用b.
A,B
和C
,还有一个A
(resp.B
/C
)类型为A
(resp.B
/C
)。
假设b
是a
的属性,c
是b
的属性
在a
的方法中,调用以下内容:b.c.operation()
我们如何在序列图中表示这一点?根据,一个对象应该只与它自己的邻居直接通信。因此,在您的情况下,a根本不应该调用b.c.operation(),因为c不是a的邻居。相反,类B应该为此提供一个接口,例如
doCOperation(){c.operation();}
而这正是a应该称之为的
因此,操作的顺序是:
b.doCOperation()
doCOperation()
中的c.Operation()
,并将结果返回给a现在试试序列图,应该会容易得多。在编程中,使用
b.c.操作()是不好的。
类中的所有数据都应该隐藏(应该是私有的)
但是如果我们有b.c.operation()
,在编译器中它会变成(b.c.operation()
因此,您的代码等于此代码:
t=b.c;
t.operation();
这是你要找的东西吗?你可以在家里试试
先自己试试看,我不知道我是否需要1)从a到c的一个箭头2)从b到c的一个箭头3)从a到b的一个箭头,从b到c的一个箭头……我从来不知道这叫做LoD(在做了30年以上的事情之后),但只是在“信息隐藏”这个术语下。编译器会改变它吗?或者在运行时?绝对是编译器。