面向对象(二)——UML基础

一、UML定义

UML统一建模语言(Unified Modeling Language)的缩写。

它的标准定义是:一种用于给面向对象软件进行可视化、详述、构造和文档化的图形化语言。

  • 特点:不是程序设计语言,而是用于描述、可视化、构造和文档化软件系统的语言。

  • 组成要素

    1. 基本构造块:事物、关系

    2. :将构造块组织成可视化表示

    3. 公用机制:贯穿整个语言的规则和公共机制

二、事物

UML 中的事物是构成模型的基本元素,分为 4 大类。

1. 结构事物

定义 :UML模型中的"名词",是模型的静态部分,描述概念或物理元素。

包括 :类、接口、协作、用例、主动类、构件、制品、结点

2. 行为事物

定义 :UML模型的动态部分 ,是模型中的"动词",描述跨越时间和空间的行为。

包括:交互、状态机、活动

3. 分组事物

定义 :UML模型的组织部分 ,是由模型分解成的"盒子"。 是最主要的分组事物。

特点

  • 把元素组织成组的机制

  • 结构事物、行为事物、其他分组事物都可放入包内

  • 包是概念上的(仅在开发时存在),不同于构件(运行时存在)

4. 注释事物

定义 :UML模型的解释部分,用来描述、说明和标注模型的任何元素。

特点:依附于一个元素或一组元素之上,对其进行约束或解释的简单符号

三、关系

UML 主要有 4 种核心关系,依赖、关联、泛化和实现。

1. 依赖(Dependency)

定义 :一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义。

例子

  • OrderService 依赖 OrderDAO:OrderService调用OrderDAO的save()方法,如果OrderDAO改了,OrderService也要改

  • 人 依赖 手机:人需要手机打电话,但手机不是人的一部分,只是临时使用

2. 关联(Association)

1.普通关联

定义 :一种结构关系,描述对象之间的连接(一组链接)。

例子

  • 学生 和 课程:一个学生可以选多门课,一门课可以有多个学生

  • 人 和 身份证:一个人对应一张身份证(1对1)

2.聚集(Aggregation)(弱包含)

  • 描述整体和部分的结构关系

  • 整体和部分生命周期不一致 :整体消失,部分仍然存在

例子

  • 公司 和 部门:公司倒闭了,部门可以换个公司继续存在

3. 组合(Composition)(强包含)

整体和部分的生命周期一致 :整体消失,部分也消失,部分不可以脱离整体存在。

例子

  • 订单 和 订单项:订单删除后,订单项一定跟着删除

  • 房子 和 房间:房子拆了,房间也就不存在了

关系 生命周期 例子
聚集(弱包含) 不一致 公司 → 部门
组合(强包含) 一致 订单 → 订单项

3. 泛化(Generalization)

定义 :特殊/一般关系,子元素的对象可替代父元素的对象,子元素共享父元素的结构和行为。

例子

  • 猫 泛化 动物:猫继承动物的属性和方法(年龄、名字、吃东西)

  • 学生 泛化 人:学生自动拥有人的姓名、年龄属性

4. 实现(Realization)

定义:一个类元指定了由另一个类元保证执行的契约。使用场景:

  • 接口 和 实现它们的类或构件

  • 用例 和 实现它们的协作

例子

  • ArrayList 实现 List 接口:ArrayList 必须实现 add()、get()、size() 等方法

  • MySQLDriver 实现 JDBC 接口:MySQLDriver必须实现connect()、execute()等方

四、UML中的图

UML 2.0定义了13种图 ,分为结构图(静态)行为图(动态)

1.结构图(静态视图)

1.类图

2.对象图

3.构件图

构件之间的组织和依赖关系,关注静态实现视图。

4.部署图

描述物理节点与构件的配置

2.行为图(动态视图)

1.用例图

包含关系(《include》):一个用例包含另一个用例。

扩展关系(《extend》):一个用例执行的时候,可能会发生一些特殊的情况或可选的情况,这种情况解释这个用例的扩展用例。

泛化关系:父类与子类的关系。

2.顺序图

3.活动图

4.状态图

五、UML五种视图

从不同角度描述同一系统:

相关推荐
龙仔72523 分钟前
RustDesk 完整笔记
运维·笔记·rust·远程工具·rustdesk
HJX_072443 分钟前
嵌入式软件C语言八股文复习笔记5——编译、链接与底层硬核机制
c语言·开发语言·笔记
摇滚侠1 小时前
《SpringBoot 3:入门与应用实战》第 15 章 生产级特性 监控指标 Metrics 阅读笔记
java·spring boot·笔记
噜~噜~噜~2 小时前
操作系统笔记-1.1.3 操作系统的特征
笔记·操作系统
杨先生哦2 小时前
【2026热端攻防系列 10/12】前端凭据安全深度攻防:Cookie/Storage劫持、会话固定、凭据泄露与浏览器最新加固方案
前端·笔记·安全·web安全
天天爱吃肉82182 小时前
# 商用车多体动力学实战笔记|第7篇:制动系统与制动热衰退、ABS滞环控制
大数据·人工智能·笔记·python·嵌入式硬件·汽车
xiaoyuchidayuma3 小时前
【交流绕组及其磁动势-典型交流绕组结构(绘制绕组展开图)】
笔记·学习
崔高杰3 小时前
【自动阅读笔记】Inference-Time Scaling for Generalist Reward Modeling
人工智能·笔记·机器学习
chenzhou__5 小时前
独立游戏开发日志 ①:从信号博弈到涂色对战——一次玩法重构始
笔记·后端·学习·unity·go·独立游戏
杨先生哦5 小时前
【2026热端攻防系列 11/12】前端AI风控攻防实战:验证码缺陷、人机验证绕过、智能爬虫对抗与企业智能风控加固方案
前端·人工智能·笔记·爬虫·安全