UML中类之间的六种主要关系

UML中类之间的六种主要关系: 继承(泛化)(Inheritance、Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

继承关系(泛化关系)(Inheritance):

描述:继承关系表示一个类派生自另一个类,继承关系用一条带空三角箭头的实线表示。子类继承了父类的属性和方法,并可以添加新的属性和方法。

示例:动物类继承自生物类,具备生物的属性和方法,并可以添加动物独有的属性和方法。

体现:子类继承父类。

符号:一条实线+空心箭头。

实现关系(Realization):

描述:实现关系表示一个类实现了一个接口,通常用一条带空三角箭头的虚线表示。接口定义了一组方法,而类实现了这些方法。

示例:一个类实现了图形接口,必须实现接口中定义的绘制图形的方法。

体现:实现接口或继承某个抽象类。

符号:一条虚线+空心箭头。

组合关系(Composition):

描述:组合关系也是整体与部分之间的关系,但在组合关系中,整体对象负责创建和管理部分对象的生命周期。它通常用一条带实心菱形的实线表示。

示例:计算机与CPU之间的组合关系,计算机包含CPU,且CPU的生命周期由计算机管理。

体现:成员变量。

符号:一条实线+实心菱形。

聚合关系(Aggregation):

描述:聚合关系是一种特殊的关联关系,表示整体与部分之间的关系,其中整体对象包含部分对象。它通常用一条带空心菱形的实线表示。

示例:车辆与引擎之间的聚合关系,车辆包含引擎,但引擎也可以存在独立于车辆。

体现:成员变量。

符号:一条实线+空心菱形。

关联关系(Association):

描述:关联关系表示类之间的连接,通常用一条实线连接类之间的名称。它指示两个类之间存在某种关联,但不提供关于关联性质的详细信息。

示例:学生与课程之间的关联,一个学生可以选择多门课程,一门课程也可以有多名学生。

体现:成员变量。

符号:双向关联: 一条实线 或 一条实线+两个箭头;单向关联: 一条实线+一个箭头。

依赖关系(Dependency):

描述:依赖关系表示一个类依赖于另一个类,通常在一个类中使用另一个类的对象或方法。它通常用一条虚线箭头连接依赖者和被依赖者。

示例:一个订单类依赖于客户类以获取客户信息。

体现:局部变量、方法的参数和静态方法的调用。

符号:一条虚线+箭头。

相关推荐
sugar__salt6 小时前
从栈队列数据结构到JS原型面向对象全解
前端·javascript·数据结构
froyoisle8 小时前
CSP-J 历年复赛 T1 及解析(2019~2025)
数据结构·c++·算法·csp-j·csp·算法竞赛·信息学
喜欢打篮球的普通人9 小时前
LLVM 后端流程与关键数据结构:从 IR 到机器码的入门笔记
java·数据结构·笔记
Misnearch9 小时前
1、数组/字符串
java·数据结构·算法
008爬虫实战录10 小时前
【数据结构】 树、二叉树、完全二叉树,先序遍历、中序遍历、后序遍历
数据结构·算法
AllData公司负责人10 小时前
大模型赋能AllData数据中台,系列升级|通过联合智谱大模型与BiSheng开源项目,建设企业大模型应用开发平台,支持知识库向量检索!
大数据·数据结构·数据库·算法·大模型·向量数据库·智谱ai
梦想的颜色11 小时前
MySQL 数据存储结构与查询执行生命周期深度解析
运维·数据结构·数据库·mysql·线程·优化
Ameilide12 小时前
数据结构 算法解释,排序、查找
数据结构
真实的菜13 小时前
Redis 从入门到精通(二):深入数据结构 —— 从 RedisObject 到 SkipList 的源码级拆解
数据结构·redis·skiplist
小欣加油15 小时前
leetcode41 缺失的第一个正数
数据结构·c++·算法·leetcode