1. 其实你所说的无聚合,应该是关联吧,无聚合这个词我是第一次听说。这种表示就是一个简单的引用,如class A中引用了class B、C、D的实例。
2.聚合,表示的是整体部分的关系,如class A中包含了几个部分:B、C、D,它们之间的关系比较弱,也就是说A对象不存在了,但是B、C、D对象仍然可以存在。
3.复合,也叫做组合,是一种特殊的聚合,更多表示的是一种“拥有”的关系,如class A中包含了几个部分:B、C、D,它们之间的关系比较强,如果A对象不存在了,则B、C、D对象也会不存在;如果拷贝了A对象,则B、C、D对象也会跟着一起拷贝。
举个例子:计算机外接打印机,它们之间就是就是聚合的关系,计算机不存在了,打印机还可以继续使用;
或者屋子Room中有桌子Desk、椅子Chair等,Room对象消失了,但是Desk、Chair等还可以继续使用,所以它们之间还是聚合关系;
但是有一辆车Car,它包含了引擎Engine、油箱OilBox等,如果Car不存在了,Engine和OilBox也会随着不存在,这种关系就是组合了。