UML-认识6种箭头(画类图无烦恼)

文章目录

    • 一、背景
    • 二、箭头详解
      • 2.1 泛化(Generalization)
      • 2.2 实现(Realize)
      • 2.3 依赖(Dependency)
      • 2.4 关联(Association)
      • 2.5 聚合(Aggregation)
      • 2.6 组合(Composition)

一、背景

因公司需求需要看懂类图以及能独立上手画类图,因类图中的基础就是6大箭头,而且6大箭头概念有些模糊,所以就有了此文章

二、箭头详解

UML中描述对象和类之间相互关系的方式包括:泛化、实现、依赖、关联、聚合、组合等。

2.1 泛化(Generalization)

1)概念:是一种继承关系(is-a),表示一般与特殊的关系,它指定了子类如何特化父类的所有特性和行为。例如:老虎是动物的一种,既有老虎的特性也有动物的共性。
2)图标
请添加图片描述
3)案例
请添加图片描述

2.2 实现(Realize)

1)概念:是一种类与接口的关系,表示类是接口所有特征和行为的实现。
2)图标
请添加图片描述
3)案例
请添加图片描述

2.3 依赖(Dependency)

1)概念:是一种使用的关系,即一个类的实现需要另一个类的协助。如方法参数需要传入另一个类的对象,就表示依赖这个类。
2)图标
请添加图片描述

3)代码体现::局部变量、方法的参数或者对静态方法的调用
4)案例
请添加图片描述

2.4 关联(Association)

1)概念:表示类与类之间的联接,它使一个类知道另一个类的属性和方法,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的。程序中一个类的全局变量引用了另一个类,就表示关联了这个类,关联关系分为单项关联和双向关联。在Java中,单向关联表现为:类A当中使用了类B,其中B作为类A的成员变量。双向关联表现为:类A当中使用了类B作为成员变量;同时类B中也使用了类A作为成员变量(双向关联有两个箭头或者没有箭头)。
2)图标
请添加图片描述

3)代码体现::成员变量
4)案例
请添加图片描述

2.5 聚合(Aggregation)

1)概念:是整体与个体的关系(has-a),且个体可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。聚合是关联关系的一种,是强的关联关系;关联和聚合在语义无法区分,必须考察具体的逻辑关系
2)图标
请添加图片描述

3)代码体现:成员变量
4)案例
请添加图片描述

2.6 组合(Composition)

1)概念:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门的关系,没有公司就不存在部门。组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期
2)图标
请添加图片描述

3)代码体现:成员变量
4)案例
请添加图片描述

借鉴地址

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

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

相关文章

NtripShare Mos监测平台边缘计算终端与自动优化平差算法

忙忙乎乎23年又要过去了,回头看今年做的事,只有两件事值得一提: 1、自动化监测边缘计算终端; 2、自动优化平差算法。 自动化监测边缘计算终端 终端采用全国产硬件方案终端支持全站仪供电控制终端支持远程控制终端支持数据缓存技…

Netty网络基础的通俗理解(网络操作系统)

写在前面 说来惭愧,最近半年没怎么学习技术,时间基本都花在工作以及去熟悉了解金融领域的知识去了。从大一到现在,我一直有个持续学习技术的习惯,如果太久没学习技术,我心里就开始有点焦虑或者说不充实,所…

半导体设备之外延炉简述

半导体设备对整个半导体行业起着重要的支撑作用。因半导体制造工艺复杂,各个环节需要的设备也不同,从流程工序分类来看,半导体设备主要可分为晶圆制造设备(前道工序)、封装测试设备(后道工序)等…

使用C/C++实现DNS协议栈

使用C/C实现DNS协议栈 DNS,全称域名系统(Domain Name System),是用于将域名转换为IP地址的分布式数据库系统。实现一个完整的DNS协议栈是一个相对复杂的任务,但本文将为您提供一个简化的概述和实际的案例,以帮助您入门。 1. 基…

20来岁,大专毕业,学软件测试可行吗?

转行软件测试找不到工作! 转行软件测试找不到工作! 转行软件测试找不到工作! 重要的事情说三遍!千万别听培训班咨询老师给你画饼 ;我就是某某软件测试培训班出来的,大专,其他专业毕业&#x…

磁盘坏道扫描工具 Macrorit Disk Scanner v6.7.0 中文免费版 -供大家学习研究参考

非常方便实用的磁盘坏道修复软件。Wipe Bad Disk功能强大好用,通过特殊的算法来强制将硬盘的坏道删除清空格式化,从而拯救因产生坏道而不敢继续使用的硬盘!要注意的是经过这块软件清空的硬盘数据基本上是不能被恢复的,所以操作前请一定要备份…

PyQt5连接mysql失败解决

一:背景 最近研究一个项目,里面用的Pyqt5编写的桌面应用,跑了下源码发现连接数据库那块出来问题,最终调试发现里面用的QtSql去连接mysql提示驱动找不到。 具体报错信息如下: Could not parse stylesheet of object …

记录 | gpu docker启动报错libnvidia-ml.so.1: file exists: unknown

困扰了两天的问题,记录一下 问题出在启动一个本身已经安装 cuda 的镜像上,具体来说,我是启动地平线天工开物工具链镜像的时候出现的问题,具体报错如下: docker: Error response from daemon: failed to create task …

linux 设备子系统 摘要

Linux设备模型提取了设备操作的共同属性,进行抽象,并将这部分共同的属性在内核中实现,而为需要新添加设备或驱动提供一般性的统一接口,这使得驱动程序的开发变得更简单了,而程序员只需要去学习接口就行了。 在内核里&…

数字病理图像分析的开源软件qupath学习 ①

介绍:QuPath是一种新的生物图像分析软件,旨在满足对用户友好、可扩展、开源解决方案日益增长的需求,用于数字病理学和全玻片图像分析。除了提供全面的肿瘤识别和高通量生物标志物评估工具外,QuPath 还为研究人员提供了强大的批处理…

写递归函数的一些思考

当编写递归函数时,有几个关键的思考点可以帮助你设计和实现递归算法: 定义递归的基本情况:确定递归函数应该在何时终止,即递归的基本情况。这是一个递归的出口条件,确保递归不会无限进行下去。基本情况应该是可以直接求…

FL Studio 21.1.0.3713中文版最新安装激活图文教程及系统配置要求

FL Studio 21.1.0.3713中文版是一款功能强大的编曲软件,它也能够剪辑、混音、录音,它的矢量界面,能更好用在4K、5K甚至8K显示器上。完全重新设计混音器、动态缩放、具有 6 种布局风格、外加 3个用户自定义面板管理音轨、多推子选择和调整、混…

正大杯获奖作品在哪可以看见

通过网盘分享的文件:2023年第十三届正大杯最新国家一等奖完整获奖作品报告等全套资料 链接:https://pan.baidu.com/s/1SPA4LumSCI4BZdCRXXnW6Q?pwdc8bj 提取码:c8bj 2023年第十三届最新正大杯国家一等奖完整获奖作品等全套资料获取方式链接https://ex59573j43x.fe…

root登录提示:Access denied

一、问题: 在使用xshell工具用root账号登录服务器时提示Access denied,拒绝访问,SSH服务器拒绝了密码,但用其它用户又可以连接. 二、原因 是因为sshd的设置不允许root用户用密码远程登录的问题 三、解决办法 使用可以登录的账…

【C++11特性篇】C++11中の【override】【final】关键字——帮助用户检测是否重写

前言 大家好吖,欢迎来到 YY 滴C系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! 目录 一.【override】【final】关键字——帮…

实战经验:如何利用房产小程序提升客户满意度?

在当今的数字化时代,房产中介公司需要不断地适应市场变化,提供更加便捷、高效的服务。小程序作为一种轻量级的应用程序,具有无需下载、易于分享、随时可用等优点,可以为房产中介公司提供一个新的销售渠道。本文将介绍如何使用乔拓…

代码随想录算法训练营Day4 | 24.两两交换链表中的节点、19.删除链表的倒数第 N 个节点、面试题. 链表相交、142.环形链表II

LeetCode 24 两两交换链表中的节点 本题要注意的条件: 遍历终止条件改变引用指向的时候,需要保存一些节点记录 为了更好的操作链表,我定义了一个虚拟的头节点 dummyHead 指向链表。如下图所示 既然要交换链表中的节点,那么肯定…

小姐姐跳舞,AI 视频生成太酷了

大家好,我是章北海 最近AI视频领域的研究进展神速,看得眼花缭乱。 这里老章就把最近几天看过印象深刻的四个项目介绍给大家,同时附上项目相关简介、论文、代码等资料,感兴趣的同学可以深度研究一下。 《SMPLer-X:放大表达性人体…

uniapp实现地图电子围栏功能

该功能使用uniapp中内置组件map实现 效果图预览&#xff1a; 实现过程&#xff1a; 1.文档&#xff1a; 2.代码&#xff1a; <template><view><map :style"width: 100%; height:screenHeight" :latitude"latitude" :longitude"longit…

mysql8支持远程访问

上面的localhost要改为%号就打开了远程访问 ALTER USER root% IDENTIFIED WITH mysql_native_password BY fengzi2141;