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

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

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

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

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

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

体现:子类继承父类。

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

实现关系(Realization):

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

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

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

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

组合关系(Composition):

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

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

体现:成员变量。

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

聚合关系(Aggregation):

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

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

体现:成员变量。

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

关联关系(Association):

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

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

体现:成员变量。

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

依赖关系(Dependency):

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

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

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

符号:一条虚线+箭头。 

相关文章:

  • PostGreSQL:数据表继承
  • JavaScript_Pig Game切换当前玩家
  • 【tio-websocket】13、消息编码、解码、处理—AioHandler
  • 现代挖掘机vr在线互动展示厅是实现业务增长的加速度
  • Lauterbach使用指南之RunTime功能
  • 服务器之日常整活
  • golang连接池检查连接失败时如何重试
  • SpringAOP源码解析之advice执行顺序(三)
  • Spring Boot 配置邮件发送服务
  • 【实用网站分享】
  • 刷题笔记day01-数组
  • Lvs+Nginx+NDS
  • conda: error: argument COMMAND: invalid choice: ‘activate‘
  • 如何在IDEA中配置指定JDK版本?轻松解决!!!
  • 在vscode中运行c++代码,windows 11系统
  • 深入了解以太坊
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • “大数据应用场景”之隔壁老王(连载四)
  • ESLint简单操作
  • golang 发送GET和POST示例
  • Gradle 5.0 正式版发布
  • HTTP 简介
  • JavaScript-Array类型
  • Joomla 2.x, 3.x useful code cheatsheet
  • PHP变量
  • 浮动相关
  • 简单基于spring的redis配置(单机和集群模式)
  • 运行时添加log4j2的appender
  • 自定义函数
  • 最简单的无缝轮播
  • 《码出高效》学习笔记与书中错误记录
  • ​力扣解法汇总946-验证栈序列
  • ###项目技术发展史
  • #Lua:Lua调用C++生成的DLL库
  • #NOIP 2014#Day.2 T3 解方程
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (接口封装)
  • (小白学Java)Java简介和基本配置
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)程序员技术练级攻略
  • .NET gRPC 和RESTful简单对比
  • .NET MVC第三章、三种传值方式
  • .net 中viewstate的原理和使用
  • .NET正则基础之——正则委托
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • ;号自动换行
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思