617 字
3 分钟
UML类关系
2025-07-05

UML类关系#

UML类图是面向对象设计中常用的工具,用于描述类之间的关系。以下是一些常见的UML类关系:

1. 继承(is-a)#

继承关系表示一个类(子类)从另一个类(父类)继承属性和方法。子类可以扩展或修改父类的行为。

  • 符号:一个空心箭头指向父类。

2. 实现#

实现关系表示一个类实现了一个接口。接口定义了一组方法,类提供了具体的实现。

  • 符号:一个空心箭头指向接口。

3. 关联#

关联关系表示两个类之间的连接。它可以是单向或双向的。

  • 符号:一条实线连接两个类,可以带有箭头表示方向,箭头指向被管理的类。
  • 示例:类A和类B之间存在关联关系,类A可以访问类B的属性和方法。
class Teacher {
Student* student; // 类Teacher关联类Student
};

4. 聚合(has-a)#

聚合关系表示一个类是另一个类的一部分,但它们可以独立存在。聚合通常表示“拥有”关系。

  • 符号:一个空心菱形指向整体类,连接到部分类。
  • 示例:类A不拥有类B的生命周期(指针、引用、智能指针),类B可以独立于类A存在。
class A {
B* b; // 类A拥有类B,但类B可以独立存在
};

注:关联和聚合在代码层面可以完全相同,但区别在于,聚合表示整体和部分之间的关系,而关联则是更一般的连接关系。

5. 组合(part-of)#

组合关系是聚合的特殊形式,表示一个类是另一个类的一部分,并且它们的生命周期是相同的。组合通常表示“包含”关系。

  • 符号:一个实心菱形指向整体类,连接到部分类。
  • 示例:类A使用类B作为成员变量,类B的生命周期依赖于类A。
class A {
B b; // 类A包含类B
};

6. 依赖#

依赖关系表示一个类使用另一个类,但不拥有它。通常表示为方法参数或局部变量。

  • 符号:一条虚线带箭头指向被依赖的类。

7. 多重性#

多重性表示一个类与另一个类之间的数量关系。它可以是1、0..1、0..*、1..*等。

  • 符号:在关联线的两端标注多重性。
UML类关系
https://chrisnake11.github.io/blog/posts/coding/uml类关系/
作者
Zheyv
发布于
2025-07-05
许可协议
CC BY-NC-SA 4.0