Bootstrap

UML(统一建模语言) 类图

UML(Unified Modeling Language,统一建模语言)类图是用于描述系统中类的静态结构及其关系的模型。它是面向对象设计和建模中最常用的一种图示。


UML 类图的基本构成

1. 类(Class)

  • 类用一个矩形表示,分为三部分:
    • 类名:矩形顶部,显示类的名称。
    • 属性:中间部分,列出类的成员变量。
    • 方法:底部部分,列出类的成员函数。

在这里插入图片描述
在这里插入图片描述

属性和方法的访问修饰符
  • +:Public(公共的)
  • -:Private(私有的)
  • #:Protected(受保护的)

2. 类之间的关系

- 关联(Association)

表示两个类之间存在一种关系(平等的),用一条实线连接。

  • 单向关联:箭头指向依赖方。
  • 双向关联:无箭头。
  • 自关联:指向自己。

单向关联,比如,每个乘客只有一张票。

在这里插入图片描述

双向关联,比如,每个消费者买多个产品,每个产品也会售卖给多个消费者。

在这里插入图片描述

自关联。

在这里插入图片描述

- 聚合(Aggregation)

是一种弱的 “整体-部分” 关系,用带空心菱形的实线表示。整体可以存在,即使部分不存在。

聚合,比如,公司和员工,一个公司包含有又多员工,但是,如果一个公司没有了,员工还可去别的公司。

在这里插入图片描述

- 组合(Composition)

是一种强的“整体-部分”关系,用带实心菱形的实线表示。部分不能独立于整体存在。

例如,公司和部门,公司没有了,部门也不会存在。

在这里插入图片描述

- 继承(Generalization)

表示类之间的继承关系,用带空心三角形的实线表示。耦合度最大。

在这里插入图片描述

- 实现(Realization)

表示类实现接口,用带空心三角形的虚线表示。

在这里插入图片描述

- 依赖(Dependency)

表示一个类依赖于另一个类,用带箭头的虚线表示。耦合性最弱的一种关联方式,临时性的关联,

在这里插入图片描述


UML 类图实例

以一个“图书管理系统”为例,类图可能包括如下几种类:

类描述

  1. User(用户):表示系统中的用户。
  2. Book(书籍):表示系统管理的书籍。
  3. Library(图书馆):代表图书馆本身。
  4. Admin(管理员):User 的子类,负责管理书籍和用户。

类图表示

+----------------+           +----------------+       +---------------+
|     Library    |           |      Book      |       |     User      |
+----------------+           +----------------+       +---------------+
| - name         |<>-------->| - title        |       | - username    |
| - address      |           | - author       |       | - password    |
+----------------+           | - isbn         |       +---------------+
| + getBooks()   |           +----------------+       | + login()     |
| + addBook()    |                                    +---------------+
+----------------+                                           /\
                                                           extends
                                                             |
                                                   +----------------+
                                                   |     Admin      |
                                                   +----------------+
                                                   | - permissions  |
                                                   +----------------+
                                                   | + addBook()    |
                                                   | + removeBook() |
                                                   +----------------+

说明

  1. 关联关系

    • LibraryBook 之间为聚合关系(空心菱形),表示图书馆可以包含多个书籍,但书籍可以独立存在。
  2. 继承关系

    • Admin 继承了 User,继承关系用空心三角形表示。
  3. 类的属性和方法

    • 每个类详细列出属性和方法,并使用修饰符标识访问权限。
  4. 职责分工

    • Library 提供管理书籍的功能。
    • User 提供基础用户功能,而 Admin 是其特化,添加了管理书籍和用户的权限。

;