uml 类图聚合与组合

  聚合

  聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分

  

 组合

  组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;

  

  聚合与组合区别 : 聚合与组合唯一的差别是否在于分享!聚合关系的中的部件可以与其类分享! 比如 : 计算机与cpu ,把计算机拆了,cpu可以用于另外的计算机。但是 人与脑袋,脑袋不能用其他人上(至少现在技术还达不到!)但是 肾可以用来分享!

  

原文地址:https://www.cnblogs.com/liuzhang/p/2964427.html