看了很多的博客解释之后,自己总结出了一套比较好记,好理解的方式!
所以:
1 。关联,聚合,组合都是关联关系。
2 。三者之间的紧密关系 关联《聚合《组合
现在有2个类A和B。
3.如果A类能对B类进行
组合。也就是说A类能够对A中的对象b(B类的实例)进行完全管理。A想对b对象进行创建和销毁就能做到。
比如,人和人的生命
生命对象b不可能在人对象a之外存活
4,。
聚合
比如笔和笔芯(有主次关系)。 就是说笔如果坏了但是笔芯还是能用,对象还是存在!相对于代码来说C++
class A{
private B* b;
}
从这里可以看得出,A中只是有B的一个引用。A只能对B对象进行使用,而不能管理
所以在java中就很难体现聚合,可以说成没有
5.关联 关系和聚合关系很像。但是A,B这两个类没有主次关系。比如:笔记本和鼠标
也就说 聚合和关联关系在代码上看不出什么区别,但是他们的类有设计上的主次关系