我必须为这段代码编写协作图:
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 是从 Track 类继承的类,它们具有带两个参数的构造函数。另外,函数“add”采用一个 Track 类型的参数。所以,我认为我们应该有 3 个 self 调用(对于 add 方法的每次调用),因为这是类列表中的函数,然后是一个(也是 self 调用)用于函数播放。但不确定如何包含类 mp3 和类 wav 的对象,因为我们只调用类 Playlist 中的函数。 所以,我不确定为什么我们从 mp3(wav) 类而不是从类播放列表中调用函数 play。另一方面,我们从播放列表中调用函数 play。
最佳答案
示例代码仅显示 main 函数的作用。因此,所有链接都应从 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规范并不清楚
- 如何在通信图中表示全局主函数。
- 如何在通信图中表示调用构造函数。
关于oop - 使用Java代码绘制协作图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70156220/