【UML】类图详解

news2024/9/27 5:52:36

UML

UML ——Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用
于帮助软件开发人员进行思考和记录思路的结果

UML图有哪些

  1. 用例图
  2. 静态结构图∶类图、对象图、包图、组件图、部署图
  3. 动态行为图∶ 交互图(时序图与协作图)、状态图、活动图

UML类图详解

UML 本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他
们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等。

类图主体

在这里插入图片描述


类图之间的关系主要有六种,分别是 依赖、泛化、实现、关联、聚合、组合

依赖 —— 是最广泛 的应用和统称

凡是是在类中用到了对方,那么他们之间就存在【依赖关系】。倘若没有对方,那连编绎都通过不了。

如下图,虚线箭头就是表示依赖,以下类图表示 Student 依赖于School

在这里插入图片描述

哪里会使用到依赖呢?其实依赖使用的十分广泛:

  1. 类中用到了对方
  2. 是类的成员属性
  3. 是方法的返回类型
  4. 是方法接收的参数类型
  5. 方法中使用到局部成员变量

泛化 —— 依赖关系的特例,特代表继承

【泛化关系】实际上就是【继承关系】

如下图,实线空心三角形就是表示泛化,以下类图表示 Children 继承了 Parent

在这里插入图片描述

实现——依赖关系的特例,特代表类与接口

【实现关系】表示【类B】实现了【接口A】

如下图,虚线空心三角形表示实现,以下类图表示 Children 实现了 Person 接口

在这里插入图片描述

关联—— 依赖的特例,特代表类与类

【关联关系】表示类与类之间联系,此外,关联关系还有双向关系和单向关系的 导航性,以及一对一,一对多,多对多的 多重性

如下图,一条实线表示关联,以下表示 childrenfathermother 有关系(一对多),fathermother 之间有关(一对一),childrenfatherchildrenfatherchildrenfather(双向的导航性)
在这里插入图片描述

聚合 —— 关联的特例,特代表整体和部分

【聚合关系】表示的是整体和部分的关系,整体与部分 可以分开

如下图,实线空心菱形表示聚合,下图表示 MouseComputer 的一部分,但是 Computer 没有 Mouse 也可以使用
在这里插入图片描述

组合 ——关联的特例,特代表整体和部分

【组合关系】表示的是整体和部分的关系,整体与部分 不可以分开

如下图,实线实心菱形表示聚合,下图表示 HeadPerson 的一部分,但是 Person 没有 Head 不可以存活,两个不可分离。

形表示聚合**,下图表示 HeadPerson 的一部分,但是 Person 没有 Head 不可以存活,两个不可分离。


在这里插入图片描述

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

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

相关文章

Python 搭建编程环境

一、搭建编程环境 1、下载python 官网:https://www.python.org 2、开始安装 下载安装版本,双击下载的安装包,如下: 步骤一: 步骤二: 步骤三: 安装完成后执行下面的操作,判断是否…

[移动通讯]【Carrier Aggregation-4】【LTE-5】

前言: 前面讲过通过能力上报,以及RRC Connection Reconfiguration 添加SCell,添加完成后,UE 处于Inactive 状态。 本章主要讨论一下 Inactive 状态Active 状态的切换. 3GPP TS 36.321 V11.1.0 section 6.1.3.8 "Activation/Deactivat…

使用Python抢购商品

使用Python抢购商品 前言准备工作安装selenium库下载ChromeDriver 编写抢购商品py脚本导入库selenium使用方法 示例代码淘宝网华为商城 前言 注意:示例代码仅供学习使用,禁止不正当盈利。 本文使用Python的selenium库通过Chrome浏览器来抢购商品。首先…

Vue3-初识Vue3、创建Vue3工程、vue3组合式API(setup、ref函数、reactive函数)、响应式原理、计算属性、监视属性

Vue3(1) 目录 Vue3(1)一、Vue3简介二、创建Vue3.0工程1、使用vue-cli创建2、使用vite创建 三、常用的Composition API(组合式API)1、拉开序幕的setup2、ref函数3、reactive函数4、Vue3中响应式原理&#xf…

Django:五、登录界面实现动态图片验证码

一、下载包 pip install pillow 二、代码 这是一个函数,无输入,返回两个值。一个值是图片,一个值是图片中的数字及字母。 需要注意:font_fileMonaco.ttf 是一个验证码字体文件,如有需要,可三连私信。 …

缓存之缓存简介

目录 一.缓存的作用二.缓存的使用1.适用缓存的数据场景2.读取缓存流程图 三.本地缓存和分布式缓存 一.缓存的作用 Java缓存技术是在应用程序和数据库之间的一种中间层,用于存储暂时性数据,尤其是读取频繁但更新较少的数据。它的作用是减轻应用程序和数据库之间的负担,提高应用程…

WhatsApp营销:避免封禁账号的关键策略

首先,我们需要明白,WhatsApp官方明确反对群发为,随时可能导致账号被封禁的风险存在。因此,我们应该避免避免群发,而更多地采用单一发单的方式。当找到目标客户后,应先仔细研究客户的主页,例如他…

VSCode 配置 Lua 开发环境(清晰明了)

概述 由于 AutoJS 学得已经差不多了,基本都会了,现在开始向其他游戏脚本框架进发, Lua 语言很强大,就不多说, 按键精灵、触动精灵等等都是用该语言编程脚本的,由于按键精灵、触动精灵 和 AutoJS 类似,不是…

基于SpringBoot的在线题库管理系统的设计与实现(源码+lw+部署文档+讲解等)

前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻…

mysql odbc驱动安装

到官网下载对应版本的驱动包 可以选择对应版本,建议使用最新版本即可 查看powerDesigner对应的位数,位数对应不上的话,会找不到 powerDesigner 可以参考:powerDesigner安装 我这里装的是32位的 下载对应版本的即可 下载完成&a…

数据结构与算法基础-(1)

🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…

代码审计——任意文件下载详解(二)

为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 01 漏洞描述02 审计要点03 漏洞特征04 漏洞案例05 修复方案 01 漏洞描述 网站可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限制,就能够查看或下载任意的文件&…

windows系统安装python教程,以及PyCharm安装,新手入门详细

最近需要给新电脑安装python,记录一下安装过程。 到python的官网进行下载:https://www.python.org/ 选择下载的系统,这边是Windows 然后选择最新的Release版本,点进去 然后滑到最下边,选择适合自己系统的,…

Mybatis 中 SQL 注入攻击的 3 种方式

SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种ORM框架的使用,注入问题也越来越少。往往对Java Web应用的多个框架组合而心生畏惧,不知如何下手,希望通过Mybatis框架使用不当导致的SQL注入问题为例&#xff…

基于Java自习室预订座位管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

卓越领先!安全狗入选2023年福建省互联网综合实力50强

近日,福建省互联网协会在2023年东南科技论坛——智能算力助力数字经济产业融合发展论坛上正式发布2023年福建省互联网综合实力前50家企业最终评定结果。 作为国内云原生安全领导厂商,安全狗凭借突出的竞争力和市场表现入选综合实力50强。 厦门服云信息科…

任正非“苹果是华为的老师”;音频编解码标准 L2HC 发布;GNU 和自由软件运动四十周年丨RTE开发者日报 Vol.53

开发者朋友们大家好: 这里是「RTE 开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

虚拟机如何扩容麒麟操作系统的根文件系统

在工作中,经常会面临服务器磁盘空间不足的问题,特别是根文件系统(/)快满了。本文将介绍如何扩容Linux服务器的根文件系统,以解决这个常见的问题。 步骤一:关机后扩容磁盘 步骤二:打开磁盘实用工…

QSFP-DD800光模块:未来数据中心的新一代解决方案

什么是QSFP-DD800光模块? QSFP-DD800是Quad Small Form-factor Pluggable Double Density的缩写,是由QSFP-DD MSA定义的高速热插拔封装模式。与现有的光纤网络设备兼容性较强,方便数据中心的升级和扩展。 关于传输距离 在传输距离方面&#x…

React 全栈体系(十一)

第五章 React 路由 五、向路由组件传递参数数据 1. 效果 2. 代码 - 传递 params 参数 2.1 Message /* src/pages/Home/Message/index.jsx */ import React, { Component } from "react"; import {Link, Route} from react-router-dom import Detail from ./Detai…