UML 学习

什么是 UML

面向对象的程序设计工具,独立于任何具体的程序语言

类图

关联关系

关联是一种拥有关系,具有方向性

  1. 单向关联,使用带箭头的实线表示,箭头指向被拥有方
  2. 双向关联,使用双向箭头或者不带箭头的实线表示

聚合关系

聚合关系表示整体与部分的关系,使用空心灵性带箭头的虚线表示,菱形指向整体,箭头方向指向个体

eg: 公交车与公交车队

组合关系

组合关系也表示整体与部分的关系,但是比聚合关系更为严格

使用实心菱形的箭头实线表示,菱形指向整体,箭头指向个体

组合关系和聚合关系有什么区别

  1. 组合需要两者有相同的生命周期
  2. 聚合是整体与个体的关系

泛化关系

表示泛化的元素与具体的元素之间的关系,可以理解为继承

用带三角箭头的实线表示,箭头指向父类

实现关系

表示类实现接口的关系

用带三角箭头的虚线表示,箭头指向接口

依赖关系

一个类修改后会影响到另一个类,这就是依赖关系,一般而言,依赖关系是单向的

用带箭头的虚线表示,箭头指向依赖者

关联关系和依赖关系的区别

  1. 依赖更多时候是作为参数传入
  2. 关联关系是一种拥有关系

时序图

组成元素

  1. 角色
  2. 对象
  3. 生命线
  4. 控制焦点,表示一段业务逻辑
  5. 消息
  6. 自关联消息
  7. 组合片段

举例

图中,client、server、device 为对象

箭头表示消息

虚线表示返回值

处理流程是控制焦点

相关推荐
2501_9318037510 小时前
Go 接口学习笔记:从语法到心法
笔记·学习·golang
秋漓10 小时前
Docker学习与使用
学习·docker·容器
星夜夏空9910 小时前
STM32单片机学习(22) —— I2C通信协议
stm32·单片机·学习
香蕉鼠片10 小时前
CNN学习时的代码
人工智能·学习·cnn
searchforAI10 小时前
5款AI笔记工具实测:导入体验、结构化输出、后续能力逐项对比
人工智能·笔记·学习·ai·chatgpt·aigc·音视频
pixcarp10 小时前
Redis ZSet:底层设计与实践
数据库·redis·后端·学习·golang·web
学习中.........10 小时前
Agent 记忆力机制设计学习路线:从主流项目中学习
学习
XGeFei10 小时前
【Fastapi学习笔记(1)】—— Pydantic模型、依赖注入、请求头-Cookie、响应头
笔记·学习·fastapi
『昊纸』℃11 小时前
作为小白,C语言如何从零开始呢
c语言·ide·学习·编程·教材