oop - 聚合涉及依赖?

标签 oop uml

我正在为一个项目制作 UML 图,但我有疑问...... 我用一个例子来解释一下:

public class Book{...}

public class Library{
    private ArrayList<Book> books;

    public void insert(Book b){...}

    public Book get(Book b){...}
    }

在这种情况下,Book 和 Library 之间存在聚合,但也存在依赖关系,对吧? 聚合是一种关系,其中“父”类包含“子”类,而依赖关系是一个类通过参数或返回类型使用另一个类的情况。 现在,如果一个类A包含另一个类B的对象,意味着B的对象已经以某种方式传递给类A的对象,唯一的方法是使用方法(或构造函数),所以聚合涉及依赖关系?

PS:抱歉我的英语不好

最佳答案

恕我直言,我不同意你的教授。您的图表中确实有聚合,因为 Library 包含 Books(语义上和句法上)。

UML 依赖关系意味着“某些 UML 元素或一组元素需要、需要或依赖于其他模型元素来进行规范或实现”(来 self 最喜欢的 UML 引用站点: uml-diagrams.org )。当您在两个元素之间放置聚合链接时,已经声明一个元素依赖于另一个元素,因此在它们之间添加依赖关系是多余的。

关于oop - 聚合涉及依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12375455/

相关文章:

typescript - 如何在 VS Code 中生成 TypeScript UML 类图?

java - java UML图

oop - 如何在 Haskell 中建模类层次结构?

python - python中如何通过调用__init__方法中的方法来引入对象的属性?

php - OOP 方法链接可选返回

UML 通用触发表示法

javascript - 如何创建特权 JS 方法?

oop - 当状态不可变时,静态类是否合适?

java - Eclipse 项目的 PlantUML 图

UML 是否仍将组合/聚合对象显示为成员变量?