UML中关联,依赖,聚集,组成的联系和区别

版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。
在UML中,关联,依赖,聚集,组成的联系十分紧密,不容易区分,本文试图用通俗的语言来讲解这四种关系的区别。
 
关联,即是发生关系,一个类A关联类B,说明类A中的字段(或属性)中含有类B的实例链接(在C++中为指针),类B也可以关联类A,他们是对等的,没有主次之分。
 
依赖,类A依赖类B,说明类A中用到了类B,这个“用到”,比关联的程度更浅,比如,在局部变量(函数中的变量和函数参数)中用到了类B,也可能是类A用到了类B的静态函数。
 
聚集:聚集也是一种关联,但是对于关联来讲,关联的双方都是对等的,没有主次之分,在聚集中,则有主次之分,“主”的一方只能有一个。那计算机来说,“计算机”是一个对象,他就是“主”,而“硬盘”,“主板”,“显示器”等等则是“次”的一方,“硬盘”,“主板”,“显示器”聚集成“计算机”,他们只是聚集的关系,主板完蛋了,并不影响显示器,所以大家可以理解为聚集中的对象,即是一个整体,又各自独立。
 
组成:组成是一种特殊的聚集(那当然也是关联喽),拿桌子来说吧,桌子有桌面和桌腿组成,然桌面没有了或桌腿没有了,都不能称之为桌子,这个意思就是说,对于组成对象的个部分来讲,他们有一个有机的整体,不可分割的整体。桌子对象(主体对象)要负责桌面,桌腿(“次”对象,主次之分的“次”)的生命周期。拿C++语言来讲,桌子对象内部含有桌面对象和桌腿对象的对象实例,这可不是指针喽,但在“聚集”中是指针,这也就是聚集和组成的区别。
 
原文地址:https://www.cnblogs.com/fxair/p/1845929.html