UML中类图的绘制

159 阅读2分钟

UML中类图的绘制

前言

什么是UML

UML(Unified Modeling Language)统一建模语言,是一种用于描述软件系统的语言,UML被用于用图形化的方式描述软件系统。

什么是类图

UML分为结构图和行为图,类图是结构图,描述了系统中类的静态结构及类与类的关系。

图形表示

类是具有相似结构、行为和关系的一组对象的描述符,是面向对象系统中最重要的构造块。

类的表示方法:

classDiagram
    class 人类{
        +  string 性别
        +  number 年龄
        + 吃饭()
        + 睡觉()
    }

三个格子从上至下分别表示:

  • 类名称(如果是接口,就使用斜体表示)
  • 类的特性(一般是类的字段和属性,可以没有)
  • 类的操作(一般是类的方法或行为)

它们前边的符号有以下几类:

  • “+”表示public
  • “-”表示private
  • “#”表示protected

接口

接口是定义了一组方法或属性的集合,它不包含实现,它只是定义了类的行为。

接口表示方法一:

classDiagram
    class Car{
        <<interface>>
        + string oil
        + drive()
    }

接口表示方法二:棒棒糖表示法 mermaid-diagram-2025-05-28-172316.png

主要关系

泛化
  • 【基本含义】一种继承关系,子类继承父类所有的特征和行为。
  • 【表示方法】空心箭头的实线,箭头指向父类。
classDiagram
    动物 <|-- 猫 
    class 动物{
        + string 门、纲、目、科、属、种
        + 吃()
    }
    class 猫{
        + string 哺乳纲、猫科
        + 吃鱼()
    }
实现
  • 【基本含义】类与接口的关系,类是接口所有特征和行为的实现。
  • 【表示方法】空心箭头的虚线,箭头指向接口。
classDiagram
    支付接口 <|.. 支付宝支付
    class 支付接口{
        <<interface>>
        number money
        pay()
    }
    class 支付宝支付{
        + number money
        + pay()
    }

棒棒糖表示法

mermaid-diagram-2025-05-28-172316.png

关联关系
  • 【基本含义】一种拥有关系,一个类知道另一个类的所有属性和方法。
  • 【代码体现】成员变量
  • 【表示方法】实线普通箭头,箭头指向被关联(被拥有)的类。
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 名称
    }
    前端构建 ..> 构建工具