我正在为一个项目制作 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/