UML类图

news2024/10/5 14:16:55

统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。 UML从目标系统的不同角度出发,可分为用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等 9 种图

类图的概述

类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有一个全面的认识。类图是一种模型类型,确切地说,是一种静态模型类型。类图表示类、接口和它们之间的协作关系。




类图的表示方法

​ 1. 类图使用包含类名、属性和方法的且三者间存在分割线的矩形表示

​ 2. 在属性和方法前通过不同符号来表示可见性,+ 表示public、- 表示private、# 表示protected

3. 接口顶部有<< interface >>显示
4. 属性的完整表达方式为:**可见性符号 属性名 : 类型 [ = 默认值]**
5. 方法的完整表达方式为:**可见性符号 方法名(参数列表) [ : 返回类型]**

中括号[] 间的内容时可选的,也有将类型放在属性名前,返回类型放在方法名前的说法

image-20221116202624351




类与类之间的六种表达关系

继承关系实现关系关联关系聚合关系组合关系依赖关系
空心三角形+实线空心三角形+虚线实线箭头(双向关联可以没有箭头或两个箭头)空心菱形+实线箭头实心菱形+实线箭头虚线箭头

聚合是一种弱“拥有”关系,体现在对象A中可以包含有对象B,但对象B不是对象A的一部分,其可以单独存在。

合成是一种强“拥有”关系。体现了严格的整体(对象A)和部分(对象B)的关系,只有整体(对象A)存在时,部分(对象B)才存在。



泛化(继承)关系

​ 继承关系表示一般与特殊的关系,它指定了子类如何特性化父类的所有非私有的特征和行为。

​ 例如:老虎和麻雀都继承了动物体重特性和移动行为。

​ 画法:使用带空心三角形箭头的实线连接,三角形指向父类

image-20221116204254404


实现关系

​ 实现关系就是实现类与接口的关系,实现类将必须实现接口中定义的所有抽象方法。

​ 画法:使用带空心三角形箭头的虚线连接,三角形指向父类

image-20221116205614250


关联关系

​ 关联关系指的是在A类中,可以知道B类的存在(可以在A类中调用B类的属性或方法),那么A类就关联了B类,如果在B类中也知道A类的存在,那么他们就是双向关联关系,如果B类不知道A类的存在,那么他们就是单向关联关系

​ 例如:一个老师通过学生列表属性知道学生的存在,而学生通过班主任属性知道老师的存在,那么他们就存在双向关联的关系。学生通过课程列表知道课程类的存在,但课程只是一个抽象的类,并不需要关联学生,所以只有学生关联课程,属于单向关联

​ 画法:双向关联可以使用双箭头加实线指向两个关联类,也可以只用实线。单向关联使用实线连接,箭头指向被关联的类。

image-20221116213533533

还存在一种自关联关系,例如节点中有next属性指向下一个节点,这就是节点关联了自己。

image-20221116214835385


聚合关系

​ 聚合关系是一种较强的关联关系,是一种整体和部分的关联关系,整体没有了部分无法正确运行,但部分却可以离开整体单独存在。

​ 例如:学校没有老师则无法正常运行,老师离开学校依旧可以教书,这就是一个整体和部分的聚合关系,有部分聚合成为一个整体。

​ 画法:使用带空心菱形箭头的实线连接,菱形指向整体,表示聚合为整体

image-20221116220153682


组合关系

​ 组合关系是比聚合关系更强的关联关系,也是整体与部分的关系。但不同与聚合的部分可以单独存在,组合关系中由整体调度多个部分,整体不需要时,部分也无法正常运行。

​ 例如:公司由多个部门组成,多个部门需要通力合作维持公司的正常运转,当公司不存在时,部门也就没必要存在了。

​ 画法:使用带实心菱形箭头的实线连接,菱形指向整体,表示组合为整体。

image-20221116222011414


依赖关系

​ 依赖是耦合性很弱的关联方式,是一种临时的关联使用关系。指的是在A类中的方法中,通过形参局部变量的方式使用B类的某些方法,形成一种临时的关联关系,当局部变量所属的方法结束后,这种关联关系就不存在了。

​ 例如:人玩游戏,那就需要依赖电脑游戏类来玩游戏,于是在人的玩游戏方法中传入电脑游戏类的对象来产生依赖关系。但电脑游戏类与人的关联关系只存在于玩游戏这个方法中,当这个方法结束后二者的关联关系就不存在了。

​ 画法:使用带箭头的虚线连接,箭头从使用类指向被使用的类。

类的对象来产生依赖关系。但电脑游戏类与人的关联关系只存在于玩游戏这个方法中,当这个方法结束后二者的关联关系就不存在了。

​ 画法:使用带箭头的虚线连接,箭头从使用类指向被使用的类。

image-20221116223443346



各种关系的强弱顺序

泛化= 实现> 组合> 聚合> 关联> 依赖

下面这张UML图,比较形象地展示了各种类图关系:

0_1330497855hqk2

这张图的原文链接:https://blog.csdn.net/tianhai110/article/details/6339565

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

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

相关文章

实现一个全局事件总线并发布到NPM

前言 Vue2开发过程中&#xff0c;会碰到非父子组件情况&#xff0c;我们大多数会使用Vue提供的自定义实例来解决这个问题&#xff0c;但在Vue3之后就移除了$on/$off/$once/emit 相关API&#xff0c;不再提供自定义实例&#xff0c;而是推荐使用一些第三方库如mitt、tiny-emitt…

第3关:Client连接及状态

ZooKeeper状态以及状态的转换 一个会话从NOT_CONNECTED状态开始&#xff0c;当客户端初始化后转换成CONNECTTING状态&#xff08;箭头1&#xff09;。 当客服端与服务器断开连接&#xff0c;状态转换成CONNECTED状态&#xff08;箭头2&#xff09;。 当客服端与服务器断开连接…

基于xsh的vbs脚本的使用(语法)

一. chr(number)含义 chr(number) 对应列表链接&#xff1a;chr码值对应列表大全_conger3400的博客-CSDN博客 常用举例&#xff1a; chr(3)&#xff1a;CtrlC/退出等待某个执行命令 chr(4)&#xff1a;CtrlD/退出会话 chr(8)&#xff1a;del回退删除一个字符 chr(9)&#xff…

Linux网络管理

文章目录 前言 网卡的存储位置&#xff08;查看网卡&#xff09; NetworkManager服务 查看网络连接状态 配置网卡参数 先备份网卡配置文件&#xff0c;再修改 查看本机的自动获取的IP 编辑网卡配置文件 重启网络服务并查看IP 另一台机器同样的方法进行网络配置&#x…

网络工程师备考1-2章(续)

一:差错控制 (1)奇偶检验 什么意思呢? 如果我们用 奇校验,就是保证传输过来的数据中的1是奇数,如果不是奇数那么说明传输错误。 (所以会增加一位,保证正确的数据的总的1一定是奇数) (2)海明码 什么是海明距离? 两个码字,例如 0 1 0 0 和 0 0 1 0 可以看到这…

人机界面在石油钻井工程中的应用:如何搭建钻井工程参数监测系统?

一、应用背景 石油钻井工程是石油开采过程中最为关键的一个环节&#xff0c;直接决定着石油开采的质量和经济效益&#xff0c;而钻井工程参数的实时监测、分析处理和存储是保证安全、可靠、高效钻井的重要途径。 随着科学技术的飞速进步&#xff0c;尤其是自动化技术的发展&a…

HTML网页设计制作大作业(div+css)---浩瀚天文 (13页有二级菜单)

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | | HTML期末大学生网页设计作业&#xff0c;Web大学生网页 HTML&#xff1a;结构 CSS&#xff1a;样式 在操作方面上运用了html5和css3&#xff0c; 采…

MySQL索引及调优回顾

MySQL索引及调优回顾 1.1 &#xff1a;索引诞生的背景是怎样的&#xff1f; 假如数据库表中只有10条记录&#xff0c;我们可以一条条的进行查询。假如有500万条记录呢&#xff0c;从假如还是一条条去查询可能需要的时间就会比较长&#xff0c;此时索引就诞生了。1.2 &#xf…

SSH Keylogger密码抓取

简介 SSH Keylogger终端切换用户记录用户输入的终端信息可获取密码 主要利用strace系统调试工具获取ssh的读写连接的数据&#xff0c;以达到抓取管理员登陆其他机器的明文密码的作用。 Strace strace命令是一个集诊断、调试、统计于一体的工具,常用来跟踪进程执行时的系统调…

flutter 中最详细的继承,多态,接口讲解

flutter 中最详细的继承&#xff0c;多态&#xff0c;接口讲解前言一、继承&#xff08;Extends&#xff09;二、混合 mixins&#xff08;with&#xff09;2.1、最简单的mixin2.2、on 关键字&#xff0c;基于某个类型的mixin2.3、多个mixin2.4、mixin 怎么实现多继承三、接口的…

常见简单的排序算法汇总

作者&#xff1a;~小明学编程 文章专栏&#xff1a;Java数据结构 格言&#xff1a;目之所及皆为回忆&#xff0c;心之所想皆为过往 目录 插入排序 原理 代码实现 算法性能分析 希尔排序 引入 原理 代码 算法分析 选择排序 原理 代码 堆排序 原理 代码 算法分析…

pythonUI自动化测试selenium安装使用

pythonUI自动化测试selenium安装使用一、selenium二、安装1. selenium其实虽然称之为工具&#xff0c;但是实际是python中一个库2.安装浏览器3.下载浏览器驱动三、元素定位1.常见的元素定位方式2.打开浏览器3.设置最大行4.设置隐式等待5.打开网页6.点击 登录 按钮7.设置等待8.用…

【javaEE】网络编程套接字

To u&me: 努力经营当下&#xff0c;直至未来明朗 文章目录前言一、网络编程&#xff08;没时间可以跳过&#xff09;一&#xff09;网络编程了解二&#xff09;相关基本概念二、Socket套接字三、数据报套接字通信&#xff08;UDP&#xff09;写一个最简单的UDP版本的客户端…

[附源码]java毕业设计科院垃圾分类系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

高级UI-Canvas(变换技巧,状态保存)

前言 在前面我们把Paint关于UI颜色样式的处理进行了学习&#xff0c; 其实真正高级部分就是三个点&#xff0c;渲染&#xff0c;滤镜&#xff0c;图形组合&#xff0c;而我们图形绘制比较重要的另一个对象Canvas也是需要我们去重点掌握的&#xff0c;那么这次课咱们来进行Canv…

数组与指针实验

指针与数组实验 先简单看一下以下c代码 #include <stdio.h> #include <stdlib.h> int main() {char array[10];array[0] 0x56;array[1] 0x78;array[9] 0x12;char *p (char *)malloc(10);p[0] 0x34;p[1] 0x12;printf("%p\n%p\n%p\n%p\n", array, …

[附源码]Python计算机毕业设计 家乡旅游文化推广网站

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

【微信小程序】.js文件的代码结构与Page页面的生命周期

&#x1f3c6;今日学习目标&#xff1a;第十期——.js文件的代码结构与page页面的生命周期 &#x1f603;创作者&#xff1a;颜颜yan_ ✨个人主页&#xff1a;颜颜yan_的个人主页 ⏰预计时间&#xff1a;25分钟 &#x1f389;专栏系列&#xff1a;我的第一个微信小程序 文章目录…

尚医通 (二十二) --------- MongoDB 简介

目录一、NoSQL 简介二、什么是 MongoDB ?三、MongoDB 特点四、安装 MongoDB1. 数据库2. 文档3. 集合4. 适用场景五、MongoDB 概念解析一、NoSQL 简介 NoSQL (NoSQL Not Only SQL)&#xff0c;意即反 SQL 运动&#xff0c;指的是非关系型的数据库&#xff0c;是一项全新的数据…

使用SRM系统有哪些供应商管理优势?

SRM系统就是我们常说的供应商关系管理&#xff0c;它主要是用来改善与供应链上游供应商的关系&#xff0c;改善企业与供应商的关系的新型管理机制&#xff0c;使双方关系更加紧密&#xff0c;从而实现供应双赢。相信对SRM供应商关系管理系统有了解的朋友们并不陌生&#xff0c;…