当前位置: 首页 > news >正文

软件工程(八):UML类图的几种关系

依赖(Dependency)

  • 定义:一个类使用到了另一个类(例如作为参数、局部变量等)。
  • 表示虚线箭头,箭头指向被依赖的类。
  • 关键词usesdepends on
  • 示例:类 A 的某个方法使用类 B 作为参数或返回值。
A -------▷ B
(虚线箭头)

关联(Association)

  • 定义:类与类之间的一种结构关系,表示一个类知道另一个类,通常以成员变量的形式存在。
  • 表示实线连接,可加上箭头表示导航方向。
  • 可选信息:多重性(1、0…1、*)、角色名、可见性。
  • 示例:学生类与班级类之间的关系。
Student ──────── Class1           1..*

聚合(Aggregation)

  • 定义:一种特殊的关联,表示“整体-部分”关系,部分可以独立于整体存在。
  • 表示空心菱形指向整体。
  • 示例:班级聚合多个学生,学生可独立存在。
Class ◇───────── Student

组合(Composition)

  • 定义:比聚合更强的“整体-部分”关系,部分不能独立存在,生命周期与整体相同。
  • 表示实心菱形指向整体。
  • 示例:人由心脏、肝脏等组成,器官不能脱离人体单独存在。
Person ◆───────── Heart

继承 / 泛化(Generalization)

  • 定义:子类继承父类的属性和方法,是一种“is-a”关系。
  • 表示空心三角形箭头指向父类。
  • 示例:猫继承自动物。
Cat ─────────▷ Animal(空心三角形)

实现(Realization)

  • 定义:类实现接口,是一种“can do”关系。
  • 表示虚线+空心三角形箭头指向接口。
  • 示例:类实现接口 Runnable。
MyClass - - -▷ Runnable
(虚线+三角)

总结

关系表示方式含义/语义典型示例
依赖虚线箭头临时使用方法参数、返回值
关联实线拥有成员引用学生与班级
聚合空心菱形+实线整体与部分,可独立存在班级和学生
组合实心菱形+实线整体与部分,生命周期一致人与器官
泛化实线+空心三角箭头继承,是一种“是”关系动物与猫
实现虚线+空心三角箭头接口实现Runnable 与 Thread 类
http://www.xdnf.cn/news/609823.html

相关文章:

  • Redis-RedisShake数据迁移工具
  • Linux--初识文件系统fd
  • Python的FastApi随笔记
  • MySQL强化关键_016_存储引擎
  • 每天分钟级别时间维度在数据仓库的作用与实现——以Doris和Hive为例(开箱即用)
  • 第四十七节:图像分割-分水岭算法
  • canal实现mysql数据同步
  • JavaWeb面试题 (一)
  • window 显示驱动开发-视频内存供应和回收(三)
  • STM32F103_Bootloader程序开发01 - 什么是IAP?跟OTA有什么关系?
  • 关于 Web 风险点原理与利用:6. 逻辑风险点
  • 跨平台三维可视化与图形库.VTK图形库.
  • CATIA高效工作指南——常规配置篇(三)
  • SAP在化工行业的数字化转型:无锡哲讯科技的赋能实践
  • 微气象在线监测装置:精准感知环境变化的科技之眼
  • win32相关(句柄表)
  • 【Mini-F5265-OB开发板试用测评】2、关于platform.c中的串口号初始化修改的建议
  • GO语言学习(九)
  • Flask项目打开总是上一个项目的网页
  • 短视频与直播场景下的美颜SDK优化方案:滤镜与特效如何平衡性能与美感?
  • 精益数据分析(80/126):病毒式传播系数实战计算与增长策略优化
  • 中电金信X中远海科推出“银航宝”解决方案,共绘航运金融新图景
  • Python Scikit-Learn核心流程
  • Vue3中的TSX:用函数式思维构建现代组件的实践指南
  • 基于vite构建的vue项目添加路由时注意要利用import.meta.glob映射构建生成后的路径
  • 计算机网络学习(三)——HTTP
  • 详解Mysql的快照读和当前读区别
  • 基于BERT预训练模型(bert_base_chinese)训练中文文本分类任务(AI老师协助编程)
  • 25年上半年五月之软考之设计模式
  • Linux基本指令(二)