UML 学习

什么是 UML

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

类图

关联关系

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

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

聚合关系

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

eg: 公交车与公交车队

组合关系

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

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

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

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

泛化关系

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

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

实现关系

表示类实现接口的关系

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

依赖关系

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

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

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

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

时序图

组成元素

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

举例

图中,client、server、device 为对象

箭头表示消息

虚线表示返回值

处理流程是控制焦点

相关推荐
lengxuenong5 小时前
树状数组 · 信息学学习手册1-求和3个模板
c++·学习·算法·青少年编程
lanxiaoqing025 小时前
演讲训练的第一步:先敢说,再会说
人工智能·学习·学习方法·口才
m4Rk_7 小时前
【论文阅读】Agent记忆机制(109):MemComposer——用强化学习学会选哪些记忆、选多少以及怎样排序
论文阅读·人工智能·学习·开源·github
zhangdaliangmvp7 小时前
快速排序的学习理解:从基础分治到三路划分优化
c++·学习·算法
叼烟扛炮7 小时前
Linux 学习笔记(四):文件检索与管道重定向
linux·笔记·学习
王夏奇7 小时前
AI工具学习
网络·学习
Warolitbos7 小时前
【数据库】SQL进阶15题,窗口函数/索引/事务一页速查
数据库·sql·学习·mysql·面试
剑藏锋10 小时前
嵌入式学习(48)-大彩串口屏TFT指令解析
学习
cxyxixiy10 小时前
数智码力:数据核对不用人工比对,Python 快速完成多表格差异校验
开发语言·python·学习
懒大王952710 小时前
学习TS + ArkTS 快速入门
学习