UML中类图的绘制
前言
什么是UML
UML(Unified Modeling Language)统一建模语言,是一种用于描述软件系统的语言,UML被用于用图形化的方式描述软件系统。
什么是类图
UML分为结构图和行为图,类图是结构图,描述了系统中类的静态结构及类与类的关系。
图形表示
类
类是具有相似结构、行为和关系的一组对象的描述符,是面向对象系统中最重要的构造块。
类的表示方法:
classDiagram
class 人类{
+ string 性别
+ number 年龄
+ 吃饭()
+ 睡觉()
}
三个格子从上至下分别表示:
- 类名称(如果是接口,就使用斜体表示)
- 类的特性(一般是类的字段和属性,可以没有)
- 类的操作(一般是类的方法或行为)
它们前边的符号有以下几类:
- “+”表示public
- “-”表示private
- “#”表示protected
接口
接口是定义了一组方法或属性的集合,它不包含实现,它只是定义了类的行为。
接口表示方法一:
classDiagram
class Car{
<<interface>>
+ string oil
+ drive()
}
接口表示方法二:棒棒糖表示法
主要关系
泛化
- 【基本含义】一种继承关系,子类继承父类所有的特征和行为。
- 【表示方法】空心箭头的实线,箭头指向父类。
classDiagram
动物 <|-- 猫
class 动物{
+ string 门、纲、目、科、属、种
+ 吃()
}
class 猫{
+ string 哺乳纲、猫科
+ 吃鱼()
}
实现
- 【基本含义】类与接口的关系,类是接口所有特征和行为的实现。
- 【表示方法】空心箭头的虚线,箭头指向接口。
classDiagram
支付接口 <|.. 支付宝支付
class 支付接口{
<<interface>>
number money
pay()
}
class 支付宝支付{
+ number money
+ pay()
}
棒棒糖表示法
关联关系
- 【基本含义】一种拥有关系,一个类知道另一个类的所有属性和方法。
- 【代码体现】成员变量
- 【表示方法】实线普通箭头,箭头指向被关联(被拥有)的类。
classDiagram
direction RL
class 手机{
+ string 品牌
+ 装饰:手机壳
+ 拍照()
}
class 手机壳{
+ string 颜色
}
手机壳 <-- 手机
聚合
- 【基本含义】关联关系的一种,强关联关系;一种整体与部分的关系,部分可以脱离整体而存在。
- 【代码体现】成员变量
- 【表示方法】带空心菱形箭头的实线,箭头指向整体(整体<-部分)。
classDiagram
class 班级{
+ string 名称
+ 学生[] 学生
}
class 学生{
+ string 姓名
}
班级 o-- 学生
组合
- 【基本含义】关联关系的一种,比组合强的关联关系;一种整体与部分关系,部分不可以脱离整体而存在。
- 【代码体现】成员变量
- 【表示方法】带实心菱形箭头的实线,箭头指向整体(整体<-部分)。
---
title: 组合和聚合的区别,学生可以脱离班级而存在,班级不可以脱离学校而存在。
---
classDiagram
class 学校{
+ string 名称
+ 班级[] 班级
}
class 班级{
+ string 名称
+ 学生[] 学生
}
class 学生{
+ string 姓名
}
学校 *-- 班级
班级 o-- 学生
依赖
- 【基本含义】一种使用关系,一个类的实线需要另一个类的协助。
- 【代码体现】成员变量
- 【表示方法】虚线普通箭头,箭头指向被依赖(被使用)的类。
classDiagram
direction LR
class 前端构建{
+ 构建工具
+ 代码
+ 构建()
}
class 构建工具{
+ string 名称
}
前端构建 ..> 构建工具