组合(composition)表现的是拥有的关系,A拥有B,那么B的生命周期就由A来决定,一旦A被销毁,B就over了。聚合(aggregation):对象间的关系比较松散,就像计算机和U盘的关系差不多,U盘可以独立于计算机存在,也可以被计算机引用。
找到一个很形象的解释:在关心汽车的领域里,轮胎是一定要组合在汽车类中的,因为它离开了汽车就没有意义了。但是在卖轮胎的店铺业务里,就算轮胎离开了汽车,它也是有意义的,这就可以用聚合了。在《敏捷开发》中还说到,A组合B,则A需要知道B的生存周期,即可能A负责生成或者释放B,或者A通过某种途径知道B的生成和释放。