UML类图

embedded/2024/10/18 14:26:24/

类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。

  • 类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示
  • 属性/方法名称前加的“+”、“-”和“#”表示了这个属性/方法的可见性

+:表示public 
-:表示private 
#:表示protected 

 

属性的完整表示方式是: 可见性 名称 :类型 [ = 缺省值]
方法的完整表示方式是: 可见性 名称(参数列表) [ : 返回类型]

 注意:中括号中的内容表示是可选的;也有将类型放在变量名前面,返回值类型放在方法名前面

 抽象类在UML类图中同样用矩形框表示,但是抽象类的类名以及抽象方法的名字都用斜体字表示

 

 接口在类图中也是用矩形框表示,但是与类的表示法不同的是,接口在类图中的第一层顶端用构造型 <>表示,下面是接口的名字,第二层是方法。

 

1 关联关系

关联关系(Association)是指对象和对象之间的连接,它使一个对象知道另一个对象的属性和方法
如果一个对象的类代码中,包含有另一个对象的引用,那么这两个对象之间就是关联关系。

双向关联:用带双箭头的实线或者无箭头的实线双线表示。
单向关联:用一个带箭头的实线表示,箭头指向被关联的对象。


2 聚合关系

聚合(Aggregation)是关联关系的一种特例,它体现的是整体与部分的拥有关系,此时整体与部分之间是可分离的,部分可以属于多个整体对象,也可以为多个整体对象共享。
聚合关系:用空心菱形加实线箭头表示,空心菱形在整体一方,箭头指向部分一方。

3 组合关系

组合(Composition)也是关联关系的一种特例,它同样体现整体与部分间的包含关系。
但此时整体与部分是不可分的,部分也不能给其它整体共享,作为整体的对象负责部分的对象的生命周期。这种关系比聚合更强,也称为强聚合。
组合关系:用实心菱形加实线箭头表示,实心菱形在整体一方,箭头指向部分一方

4 依赖关系

依赖(Dependency)关系是一种弱关联关系
如果对象A用到对象B,但是和B的关系不是太明显的时候,就可以把这种关系看作是依赖关系
依赖关系:用一个带虚线的箭头表示,由使用方指向被使用方,表示使用方对象持有被使用方对象的引用

5 泛化(继承)关系

泛化关系(Generalization)是指对象与对象之间的继承关系,泛化(继承)关系是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系。
泛化关系:用空心三角和实线组成的箭头表示,从子类指向父类。

6 实现关系

实现关系是指接口及其实现类之间的关系。
实现关系:用空心三角和虚线组成的箭头来表示,从实现类指向接口。


http://www.ppmy.cn/embedded/10085.html

相关文章

前端框架技术调研

目前程序员使用前端框架最多的是哪一个&#xff1f;

端口被占用的解决方案汇总

端口被占用的解决方案汇总 【一】windows系统端口被占用【二】Linux系统端口被占用【三】Linux的ps命令查找&#xff08;1&#xff09;ps命令常用的方式有三种&#xff08;2&#xff09;ps -ef |grep 8080 【一】windows系统端口被占用 &#xff08;1&#xff09;键盘上按住Wi…

Valentina Studio Pro for Mac:强大的数据库管理工具

Valentina Studio Pro for Mac是一款功能全面、操作高效的数据库管理工具&#xff0c;专为Mac用户设计&#xff0c;旨在帮助用户轻松管理各种类型的数据库。 Valentina Studio Pro for Mac v13.10激活版下载 该软件拥有直观的用户界面&#xff0c;使得数据库管理变得简单直观。…

深度剖析图像处理—边缘检测

什么是边缘检测 边缘检测(Edge Detection)就是提取图像中的边缘点(Edge Point)。边缘点是与周围像素相比灰度值有阶跃变化或屋顶状变化的像素。边缘常存在于目标与背景之间、目标与目标之间、目标与其影子之间。 ​ 在图像处理和图像分析中&#xff0c;经常要用到边缘(Edge)、边…

【行为型模式】命令模式

一、命令模式概述 命令模式的定义&#xff1a;将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。(对象行为型) 命令模式优缺点&#xff1a; 优点&#xff1a; 1.类间解耦&#xff1a;调用者角色与接收者角色之间没有任何依…

nodejs工具脚本json转excel

json转excel 主要使用 sheetjs 库 vim convertJsonToExcel.js 封装转换方法 import fs from fs; import XLSX from xlsx;/*** 扁平化嵌套json对象* param {Object} jsonObj* param {String} prefix* returns*/ export function flattenKeys(jsonObj, prefix ) {const resul…

NLP大模型的训练

NLP模型的训练主要分成两步&#xff1a; 1.先进行通用任务的训练&#xff1b;无监督的样本是无穷无尽的&#xff1b; 这里列举两种&#xff1a;MLM和NSP,NSP由于在某些论文中被证明是无效的&#xff0c;所以用的少&#xff1b; MLM: 接下来会在特定任务上进行finetune>su…

前端框架EXT.NET Dotnet 3.5开发的实验室信息管理系统(LIMS)成品源码 B/S架构

前端框架EXT.NET Dotnet 3.5开发的实验室信息管理系统&#xff08;LIMS&#xff09;成品源码 B/S架构 LIMS实验室管理系统 发展历史 实验室信息管理系统(LIMS)&#xff0c;就是指通过计算机网络技术对实验的各种信息进行管理的计算机软、硬件系统。也就是将计算机网络技术与现…