2

我必须为这段代码编写协作图:

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 个自调用(对于方法 add 的每个调用),因为那是类列表中的函数,然后是一个(也是自调用)用于函数播放的函数。但不确定如何包含 mp3 类和 wav 类的对象,因为我们只调用 Playlist 类的函数。所以,我不确定为什么我们从 mp3(wav) 类而不是从类播放列表中调用函数播放。另一方面,我们从播放列表调用函数 play。

4

1 回答 1

2

示例代码仅显示了 main 函数的作用。因此,所有链接都应以main.I 开头。我将绘制以下链接:

  • " 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. 如何在通信图中表示调用构造函数。
于 2021-11-30T10:16:02.130 回答