我想知道在这种情况下如何绘制 class 图

I want to know how to draw class diagram in this case

我使用 java swing GUI 和 这是我的 class

Home(UserList Userlist, BookList BookList);

BooK(UserList userList,BookList bookList);

在 class "Home" 中,当用户点击按钮时 new Book(userList,bookList);

class "Book" 是扩展 JFrame

的 class

class "Book"只有点击"Home"中的按钮才会创建 class(新建window)

UserList 和 BookList 是处理一些数组列表的 class。(我程序的数据库,我想从家里 class 发送 userList 和 bookList 数据到书本 class)

我想画 class Home 和 Book 之间的图表....是 Composition 还是 Association?

Home、Book 之间的 userList、bookList 怎么样? Home 和 Book 没有创建对象 userList、bookList。只获取参数。是协会吗?

这取决于每个 Home 是否有很多书(书籍数组),因此它是 Home 和 Book 之间的聚合。 对于 BookList 和 UserList 如果它们可以算作 Home class 或 Book class 的属性那么它就是一个关联,否则它们之间没有关系

尊重严格意义上的你的classes列表。

Home(UserList Userlist, BookList BookList);
BooK(UserList userList,BookList bookList);

In class "Home", when user click button then new Book(userList,bookList);

Home 的构造函数在参数中接收一个 UserList 和一个 BookList,假设单击的处理程序由 Home 的操作之一支持,class Home 需要记住它们。假设这些列表和它们包含的实例独立于不克隆它们的 class Home 存在,这些列表是通过简单的关联而不是组合来记忆的。

And i want to draw class diagram between Home and Book....is it Composition or Association?

None 其中,在您给出的描述中 Home 不需要与 Book[ 有(直接)关联或组成=59=],关联BookList就够了。

如果你愿意,你可以在 HomeBook 之间建立一个依赖原型 create 到指示 Home 创建 Book(s).

And how about userList, bookList between Home, Book? Home and Book didn't create object userList, bookList. only get parameter. is it Association?

没有。在构造函数或其他操作的参数中接收 UserListBookList 并不意味着您与它们有关联。

如果我把所有的都放在图表中:


组成ClassA <*>----> ClassB意味着当ClassA的一个实例消失时,相应的ClassB的实例也会消失。

具有关联ClassA ----> ClassB甚至聚合ClassA <>----> ClassB,当ClassA的实例消失时ClassB[的对应实例=59=]可能活下来。