java具有所有类中所有者类的后引用的组合

时间:2012-06-27 14:25:21

标签: java composition

所有者类:

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;努力格式化:)

3 个答案:

答案 0 :(得分:0)

阅读java.lang.ref.*

的文档

答案 1 :(得分:0)

提及大学作为学生以及大学对所有学生的参考是双向关联。它也比作曲更合适,因为大学不是由学生组成的。

请确保当您从大学中删除学生时,您也会更新该学生对大学的引用。这两个操作应该以原子方式完成,确保彻底测试。

答案 2 :(得分:0)

是的,它仍然是一个组合。学生仍归大学所有,当大学被烧毁时,他们仍然被杀害。

从形式上讲,第一个作品(没有反向引用)是在UML类图中建模的,在大学一端有一个填充的菱形,在学生结束时有一个箭头。然后在没有箭头的情况下表示没有反向参考的组合物。然而,很多人在使用箭头时并不是非常严格,使用第二种表示法也是单向构图。

要明确你应该用两个箭头建模:一个是从大学到学生的钻石,另一个没有学生到大学的钻石。