JAVA中组合与聚合的区别
聚合定义:JAVA中聚合是一种特殊的关联形式,它是两个类之间的关系,是一种has a的关系,是单向关联。如果类具有实体引用,则称为聚合。
代码实现如下:
class A{}
class B{
A a; //A类
B(A a){
this a = a;
}
}
组合定义:JAVA中组合是一种受限制的聚合形式 ,代表了part of关系,两个实体高度相互依赖。
代码实现如下:
class A{}
class B{
A a; //A类
B(){
this a = new A();
}
}
组合与聚合的区别:
聚合代表了has a关系,聚合中的两个类可以单独存在,不会互相影响,是一种弱关联关系。而组合代表了part of关系,组合中的两个类高度依赖于彼此,会相互影响,是一种强关联关系。