UML类图中的几种关系

UML中几种关系经常会搞混,这里统一梳理下,省的再犯低级错误。

一个点:实线比虚线表示的关系更强烈一些

UML中定义的关系主要有六种:

泛化:

在程序中通过“继承”来实现,也可以认为就是继承;
通过空心三角形+实线来表示,子类指向父类。


图片.png
实现:

可以理解为类与接口之间的关系;
通过空心三角形+虚线来表示,从实现类指向接口


图片.png

依赖:

是一种“使用”关系,即一个类(A)的实现需要用到另一个类(B)。
尽量不要使用双向依赖。
一般表现为类A中的方法需要类B的实例作为其参数或变量,但是类A本身并不需要引用类B的实例作为其成员变量。
使用虚线箭头表示,类A指向类B。


图片.png
关联:

比依赖的关系更强,类A使用类B的实例作为自己本身的一个成员变量。
使用实线箭头表示,类A指向类B。


图片.png

聚合:

传说中的 has-a关系,类A和类B是整体和部分的关系。但是两个部分的生存周期可以不同,没那么强的约束关系。
是一种更强的关联关系,关联关系的特例。
使用空心菱形+实线来表示,范围小的指向范围大的。


图片.png
组合:

contains-a关系,类A和类B也是整体和部分关系,但是之间的关联更强,有共同的生命周期,一旦整体不存在,部分也将不存在。
通过实心菱形+实线来表示,范围小的指向范围大的。


图片.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容