一、首先说下关联关系
关联也就是has-a,分为双向关联和单项关联,双向关联也就是A、B类分别持有对方的引用
二、聚合和聚集是一个意思,它是更强一点的关联,A对象可以包含B对象,但是B对象不是A的组成部分,例如:汽车是由轮子聚合而成,但汽车报废时,轮子依然可以单独存在,
三、组合是关联关系的一种,是比聚合关系强的关系。部分和整体的生命周期必须一致。例如人与手脚的关系。
聚合与组和的最大不同在于被拥有者的生命周期,处于聚合关系的两个类生命周期不同步,处于组合关系的两个类生命周期同步。
例子:聚合关系:A创建时B不一定创建,A消亡时,B不一定消亡
class A
{
private B;
....
}
class B{...}
组合关系:A创建时一定会创建B,A消亡时,作为A的属性的B对象也随之消亡
class A
{
private b = new B();
....
}
class B{...} |