oop - 使用Java代码绘制协作图

标签 oop uml communication-diagram

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

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()”,从 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. 如何在通信图中表示调用构造函数。

关于oop - 使用Java代码绘制协作图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70156220/

相关文章:

staruml - 如何更改通信图中starUML中 "messages"的顺序?

python - 在 Django/Python 中将字符串转换为 int 时遇到问题

Python:如何使用必须引用其容器的元素设计容器

uml - 事件图中的矩形对象节点

uml - 我们是否在序列图中包含前提条件?

uml - UML中的协作图和通信图有什么区别?

c++ - 实例方法中的静态变量 - 如何解决?

javascript - 如何将一个html文件添加到另一个html文件中(附示例)

class - UML 多重性 : "0..*" vs "*"

c# - 如何在通信图中表示循环?