使用 Java 中的一段代码绘制协作图
Drawing collaboration diagram using piece of code in Java
我要为这段代码写协作图:
public static void main(String[] args){
Playlist list = new Playlist();
list.add(new mp3("song1",5));
list.add(new wav("song2",6));
list.add(new mp3("song3",7));
list.play();
其中 mp3 和 wav 是 classes 继承自 class Track 并且它们具有带两个参数的构造函数。此外,函数“add”接受一个类型为 Track 的参数。所以,我认为我们应该有 3 次自调用(对于方法 add 的每次调用),因为这是来自 class 列表的函数,然后是一个(也是自调用)用于函数播放。但不确定如何包含 class mp3 和 class wav 的对象,因为我们只调用 class 播放列表中的函数。
所以,我不确定为什么我们要从 class mp3(wav) 而不是从 class 播放列表调用函数播放。另一方面,我们从播放列表中调用函数 play。
示例代码仅显示了主要功能的作用。因此,所有链接都应该从main
开始。我会画出以下链接:
- "
1 Playlist()
",从 main
到 list:Playlist
- "
2 mp3("song1",5)
",从 main
到 anonymous1:mp3
- "
3 add(anonymous1)
",从 main
到 list:Playlist
- "
4 wav("song2",6)
",从 main
到 anonymous2:wav
- "
5 add(anonymous2)
",从 main
到 list:Playlist
- "
6 mp3("song3",7)
",从 main
到 anonymous3:mp3
- "
7 add(anonymous3)
",从 main
到 list:Playlist
- "
8 play()
",从 main
到 list:Playlist
然而,UML规范并没有明确
- 如何在通信图中表示全局主函数。
- 如何在通信图中表示调用构造函数。
我要为这段代码写协作图:
public static void main(String[] args){
Playlist list = new Playlist();
list.add(new mp3("song1",5));
list.add(new wav("song2",6));
list.add(new mp3("song3",7));
list.play();
其中 mp3 和 wav 是 classes 继承自 class Track 并且它们具有带两个参数的构造函数。此外,函数“add”接受一个类型为 Track 的参数。所以,我认为我们应该有 3 次自调用(对于方法 add 的每次调用),因为这是来自 class 列表的函数,然后是一个(也是自调用)用于函数播放。但不确定如何包含 class mp3 和 class wav 的对象,因为我们只调用 class 播放列表中的函数。 所以,我不确定为什么我们要从 class mp3(wav) 而不是从 class 播放列表调用函数播放。另一方面,我们从播放列表中调用函数 play。
示例代码仅显示了主要功能的作用。因此,所有链接都应该从main
开始。我会画出以下链接:
- "
1 Playlist()
",从main
到list:Playlist
- "
2 mp3("song1",5)
",从main
到anonymous1:mp3
- "
3 add(anonymous1)
",从main
到list:Playlist
- "
4 wav("song2",6)
",从main
到anonymous2:wav
- "
5 add(anonymous2)
",从main
到list:Playlist
- "
6 mp3("song3",7)
",从main
到anonymous3:mp3
- "
7 add(anonymous3)
",从main
到list:Playlist
- "
8 play()
",从main
到list:Playlist
然而,UML规范并没有明确
- 如何在通信图中表示全局主函数。
- 如何在通信图中表示调用构造函数。