UML类图六大关系
UML类图,常见的关系有以下六种:
- 泛化(Generalization):泛化(Generalization)表示的是两个对象之间的继承关系。
- 实现(Realization):实现(Realization)表示接口和类的关系。
- 关联(Assciation):关联(Assciation)描述了某一个对象一直”知道“另外一个对象的存在。
- 聚合(Aggregation):聚合(Aggregation)说明整体由部分构成的关系。
- 组合(Composition):组合(Composition)说明整体拥有部分的关系。
- 依赖(Dependency):依赖(Dependency)关系说明一个对象的修改会导致另外一个对象的修改。
史上最简单的理解
类元素之间的关系
类图,那就是用来表示类与类之间的关系,类与类的关系基本体现在几方面:继承、接口实现、成员变量、方法参数,类图的关系基本也就包括了这几个方面。
首先是继承,继承就是泛化的表现一个实线加三角形表示。
接口实现,就是通过实现关系来表示,用一个虚线加三角形表示。
然后就是成员变量,引入其他类作为成员变量,代表这个类可以知道另外一个类的属性和方法,这就是关联关系,用实现加箭头表示。
最后就是局部变量、方法参数或静态方法,这几个代表的都是一种临时性的、运行时的约束,可随场景的变化而改变的,这就是依赖关系,用一个虚线加箭头表示。
关联和依赖的区别是,关联关系定义的是对象之间静态的、天然的结构的,依赖表达的是对象之间临时性、动态的关系。
结构整体意义上的体现关系
从结构上有两种关系体现整体和部分。有2种理解,一种就是零件组装成整体,一种就是整体与部分组成的关系。
- 零件组成整体,就是这个对象是可以由多个零件组成的,零件可以单独独立出来,比如汽车和轮胎。这就是聚合关系,用一根实线加实体菱形表示。
- 整体与部分组成的关系,就是部分也是整体的一部分,不能独立出来,就是组合关系,比如公司和部门,没了公司,这些部门就没有其意义了。用一根实线加菱形表示。
各种关系的强弱顺序:
泛化= 实现> 组合> 聚合> 关联> 依赖
上面的理解,是从狭隘的角度来解读类图关系,主要是方便没接触过UML的程序员快速从代码的角度来理解类图关系,有了初步了解后,在之后的接触中,就需要从逻辑和结构上来理解类图真正的关系意义。
❤️ 看完手指小运动
- 如果你觉得这篇内容对你有一点帮助或启发,想请你动动小指拇: 点赞,让更多的人也能看到这篇内容(收藏加点赞,永远不慌张(乛◡乛))。
- 关注公众号[ 撸透JAVA开发 ],不定期分享原创知识。
- 溜达溜达公众号,看看其他文章是否对你也有启发,或公众号留言。
本文使用 mdnice 排版