聚合与组合的辩论
聚合是什么??
聚合表示 了组件对象和聚合对象之 间的 Part一of联系 ,这是一种较强形式的关联关系。
程老师的《大话》里大雁的例子就举得很好,聚合是大雁与雁群的关系,雁群是由一只只大雁聚合而来,大雁离开了雁群,还是可以独立存在的。我们也可以从班级、学生与学号来看,班级是由一名名学生组成,而当学生离开班级,学生还是可以存在的。
public class CLASS {
public students student;
public CLASS(students student) {
this.student=student;
}
}
组合是什么???
组合关系是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分对象的生命周期,组合关系是不能共享的。
大雁与燕翅的关系也可以说明组合,当雁翅离开大雁,那它就没有意义了。同样我们也可以从学生与学号的关系来看,学号是学生的一部分,当学号离开了学生,那学号说明不了什么。
public class students {
public ID id;
public students() {
id=new ID();
}
}