什么是关联关系?
在UML中,关联关系是描述了类的结构之间的关系。具有方向、名字、角色和多重性等信息。
一般的关联关系语义较弱。也有两种语义较强,分别是聚合与组合。
什么是聚合关系?
一种特殊的关联关系,指明一个聚集(整体)与组成部分之间的关系。
什么是组合关系?
语义更强的聚合关系,组成部分与整体之间具有相同的生命周期。
相同:
聚合关系与组合关系都是属于关联关系,他们都是描述了整体与部分之间的关系。
异同:
聚合关系与组合关系相比,组合关系要求类的组成部分与整体之间具有相同生命周期。也就是说,类的组成部分不能脱离整体而存在,而聚合关系可以。
举个车子与轮子的关系。车子是整体,而轮子是组成部分,即使没有车子,轮子还是可以脱离车子单独存在,并可以为其他车辆使用。这种车子-轮子的关联关系就是聚合的体现
举个人和心脏的关系。人是整体,而心脏是组成部分。心脏与人具有相同的生命周期,人死了,心脏也就停了。人活着,心脏就跳动。如果心脏离开了人体便不能单独存在(当然现代的医学技术手段能保存心脏活性的,这里只是举个例子说明)
所以简单的来说。聚合关系和组合关系同样都是描述整体与部分的关系,不同的是,组合关系是一种整体与部分具有相同生命周期的聚合关系。