所有者类:
class University {
List<Student> studentCollection;
public void addStudent();
public void removeStudent();
}
拥有的班级:
class Student {
String name;
public void setName();
public String getName();
}
此处大学由学生组成,如果我们删除大学对象,则应删除所有学生。
但我想问学生它在哪所大学? 我们可以更改学生课程以获得大学的参考吗?
建议的课程
class Student {
String name;
University univRef;
/* ... */
}
这仍然是合适的构图吗?在UML中,这可以标记为组合吗? 还是应该改为双向关联?
注意:搜索答案不成功&amp;努力格式化:)
答案 0 :(得分:0)
阅读java.lang.ref.*
答案 1 :(得分:0)
提及大学作为学生以及大学对所有学生的参考是双向关联。它也比作曲更合适,因为大学不是由学生组成的。
请确保当您从大学中删除学生时,您也会更新该学生对大学的引用。这两个操作应该以原子方式完成,确保彻底测试。
答案 2 :(得分:0)
是的,它仍然是一个组合。学生仍归大学所有,当大学被烧毁时,他们仍然被杀害。
从形式上讲,第一个作品(没有反向引用)是在UML类图中建模的,在大学一端有一个填充的菱形,在学生结束时有一个箭头。然后在没有箭头的情况下表示没有反向参考的组合物。然而,很多人在使用箭头时并不是非常严格,使用第二种表示法也是单向构图。
要明确你应该用两个箭头建模:一个是从大学到学生的钻石,另一个没有学生到大学的钻石。