UML类图之间的关系与对应的代码关系

UML类图之间的关系与对应的代码关系

  • 1. 依赖关系
    • 1.1 图解
    • 1.2代码实现
  • 2. 关联关系
    • 2.1图解
    • 2.2代码实现
  • 3. 聚合关系
    • 3.1图解
    • 3.2代码实现
  • 4. 组合关系
    • 4.1图解
    • 4.2代码实现
  • 5. 泛化关系
    • 5.1图解
    • 5.2代码实现
  • 6. 实现关系
    • 6.1图解
    • 6.2代码实现

在UML中,共有四种关系:依赖、关联(聚合、组合)、泛化、实现。类与类之间的关系,从耦合度低到高排列:依赖关系、关联关系、聚合关系、组合关系、泛化关系、实现关系。
在这里插入图片描述

1. 依赖关系

1.1 图解

在UML中用带箭头的虚线表示依赖关系,箭头指向的是被依赖者。依赖关系是一种调用关系,发生在运行时,是一种临时的关系。
在这里插入图片描述

1.2代码实现

a) 在A中的方法中调用B中的方法
b) 将B作为参数传入A中,将B作为A中方法的返回值
c) A调用B中的静态方法

2. 关联关系

2.1图解

在UML中用带箭头的实线表示关联关系,箭头指向的是被关联者。关联关系是一种静态的关系,与运行时无关,由常识决定,比如师傅与徒弟、老师与学生等。从关联的方向分类,可分为:单向关联、双向关联、多重关联
在这里插入图片描述

2.2代码实现

被关联者常常以成员变量的形式存在于关联者类中

3. 聚合关系

3.1图解

在UML中用带空心菱形的实线表示两个类的聚合关系,聚合关系是一种整体与部分的关系,菱形所指的方向是整体,但部分可以脱离整体单独存在。比如雁群与大雁的关系,大雁可以脱离雁群这个整体单独存在。
在这里插入图片描述

3.2代码实现

部分常常作为整体的成员变量。

4. 组合关系

4.1图解

在UML中用带实心菱形的实线表示两个类的组合关系,组合关系也是一种整体与部分的关系,菱形所指的是整体,但部分不可脱离整体单独存在。比如人与大脑的关系,大脑不可脱离人这个整体而单独存在。
在这里插入图片描述

4.2代码实现

部分常常作为整体的成员变量。

5. 泛化关系

5.1图解

在UML中用带三角形的实线表示泛化关系,泛化关系是一种继承关系,三角形所指的是父类。
在这里插入图片描述

5.2代码实现

继承关系

6. 实现关系

6.1图解

在UML中用带三角形的虚线表示实现关系,实现关系表示是对接口的实现,三角形所指的是父类,在实现关系中父类为接口类,抽象类。
在这里插入图片描述

6.2代码实现

对接口的实现,对抽象类的实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/348900.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker与Docker-Compose详解

1、Docker是什么? 在计算机中,虚拟化(英语: Virtualization) 是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍&…

学习笔记——路由网络基础——缺省(默认)路由

3、缺省(默认)路由 1、定义 缺省路由(默认路由):是目的地址和掩码都为全0的特殊路由。全0代表任意网络。缺省路由在路由表中的形式为:0.0.0.0/0缺省路由也被叫默认路由。缺省路由优先级比直连路由低 缺省路由是一种特殊的路由,当报文没有在…

API工具--Apifox和Postman对比(区别)

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

【SkiaSharp绘图03】SKPaint详解(一)BlendMode混合模式、ColorFilter颜色滤镜

文章目录 SKPaintSKPaint属性BlendMode获取或设置混合模式SKBlendMode 枚举成员效果预览 Color/ColorF获取或设置前景色ColorFilter 颜色滤镜CreateBlendMode 混合模式CreateColorMatrix 颜色转换CreateCompose 组合滤镜CreateHighContrast 高对比度滤镜CreateLighting 照明滤镜…

eNSP学习——配置高级的访问控制列表

目录 主要命令 原理概述 实验目的 实验内容 实验拓扑 实验编址 实验步骤 1、基本配置 2、搭建OSPF网络 3、配置Telnet 4、配置高级ACL控制访问 需要eNSP各种配置命令的点击链接自取:华为eNSP各种设备配置命令大全PDF版_ensp配置命令大全资源-…

AcWing 477:神经网络 ← 拓扑排序+链式前向星

【题目来源】https://www.acwing.com/problem/content/479/【题目描述】 人工神经网络(Artificial Neural Network)是一种新兴的具有自我学习能力的计算系统,在模式识别、函数逼近及贷款风险评估等诸多领域有广泛的应用。 对神经网络的研究…

致 粉丝de信

致 粉丝 -本文呢看不下去别看,但是学业是真的重要(平常有信奥😫),电脑没收……更新可能得到暑假, 同学:小没苯agoe (aaa,学霸!!!&…

排序-快排算法对数组进行排序

目录 一、问题描述 二、解题思路 1.初始化 2.将右侧小于基准元素移到左边 3.将左侧大于基准元素移到右边 4.重复执行上面的操作 5.对分好的左、右分区再次执行分区操作 6.最终排序结果 三、代码实现 四、刷题链接 一、问题描述 二、解题思路 快排算法实现数组排序&am…

【Spring EL<二>✈️✈️ 】SL 表达式结合 AOP 注解实现鉴权

目录 🍻前言 🍸一、鉴权(Authorization) 🍺二、功能实现 2.1 环境准备 2.2 代码实现 2.3 测试接口 🍹三、测试功能 3.1 传递 admin 请求 ​ 3.2 传递普通 user 请求 🍻四、章末 &a…

【智能算法应用】基于混合粒子群-蚁群算法的多机器人多点送餐路径规划问题

目录 1.算法原理2.数学模型3.结果展示4.参考文献5.代码获取 1.算法原理 【智能算法】粒子群算法(PSO)原理及实现 配餐顺序: 采用混合粒子群算法 || 路径规划: 采用蚁群算法 2.数学模型 餐厅送餐多机器人多点配送路径规划&…

美创科技入选“2024网络安全提供商创新排行榜”

近日,DBC德本咨询公布了“2024网络安全提供商创新排行榜”,美创科技凭借近20年的数据安全创新耕耘,荣誉上榜。 此次,与360、华为、腾讯等互联网、网络安全头部厂商并肩上榜,是行业对美创的再次认可。 数据安全的发展离…

景芯SoC A72的时钟树分析

innovus的ctslog中的Clock DAG信息可以报出来CTS主要运行步骤的关键信息,比如clustering,balancing做完后的clock tree的长度,clock tree上所用的buffer、inverter,icg cell数量,clock skew等信息。我们以景芯SoC A72 …

搜维尔科技:Movella旗下的Xsens在人形机器人开发中得到广泛应用

人形机器人的发展正在全球范围内受到广泛关注。作为机器人领域的重要分支,人形机器人因其具备高度仿真的外观和动作,以及更贴近人类的行为模式,有望逐渐成为人们日常生活和工业生产中的得力助手。在中国,这一领域的发展尤为引人注…

解密Spring Boot:深入理解条件装配与条件注解

文章目录 一、条件装配概述1.1 条件装配的基本原理1.2 条件装配的作用 二、常用注解2.1 ConditionalOnClass2.2 ConditionalOnBean2.3 ConditionalOnProperty2.4 ConditionalOnExpression2.5 ConditionalOnMissingBean 三、条件装配的实现原理四、实际案例 一、条件装配概述 1…

C++进阶:继承

文章目录 继承的概念继承的定义方式继承关系和访问限定符基类和派生类对象的赋值转换继承中的作用域派生类中的默认成员函数构造函数拷贝构造函数赋值拷贝函数析构函数 总结 继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允…

【全开源】Java无人共享棋牌室茶室台球室系统JAVA版本支持微信小程序+微信公众号

无人共享棋牌室系统——棋牌娱乐新体验 🎲引言 随着科技的不断发展,传统棋牌室正逐渐迈向智能化、无人化。今天,我要为大家介绍的就是这款引领潮流的“无人共享棋牌室系统”。它不仅为棋牌爱好者提供了全新的娱乐体验,更在便捷性…

【Python】数据处理:SQLite操作

使用 Python 与 SQLite 进行交互非常方便。SQLite 是一个轻量级的关系数据库,Python 标准库中包含一个名为 sqlite3 的模块,可以直接使用。 import sqlite3数据库连接和管理 连接到 SQLite 数据库。如果数据库文件不存在,则创建一个新数据库…

Conda安装

conda可以做到不同项目就用不同虚拟环境,这样就能做到每个项目的依赖包都是相互独立 一、windows Download Success | Anaconda 环境变量 二、nano 本次安装Archiconda的外部python版本为python3.7.1

Vue基础知识:异步DOM更新是什么?$nextTick是什么?到底应该如何使用。什么是同步?什么是异步?

要先了解异步dom更新是什么就必须先了解,什么是同步?什么是异步? 1.什么是同步?什么是异步? 同步(Synchronous): 同步操作是按照代码的顺序执行的,每个操作都必须等待上…

【数学建模】MATLAB入门教程:插值与拟合(下)

前言 插值与拟合在数据处理和科学计算中扮演着非常重要的角色&#xff0c;它们用于估算未知数据点的值&#xff0c;帮助我们理解和预测数据趋势 一、一维插值 1、一维插值定义 已知n1个节点(,)(j0,1,...,n,其中互不相同&#xff0c;不妨设a<<...<b),求任一插值点(…