使用 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()",从 mainlist:Playlist
  • "2 mp3("song1",5)",从 mainanonymous1:mp3
  • "3 add(anonymous1)",从 mainlist:Playlist
  • "4 wav("song2",6)",从 mainanonymous2:wav
  • "5 add(anonymous2)",从 mainlist:Playlist
  • "6 mp3("song3",7)",从 mainanonymous3:mp3
  • "7 add(anonymous3)",从 mainlist:Playlist
  • "8 play()",从 mainlist:Playlist

然而,UML规范并没有明确

  1. 如何在通信图中表示全局主函数。
  2. 如何在通信图中表示调用构造函数。