UML(统一建模语言)类图是一种用于可视化和描述软件系统中类、对象、接口等构件之间关系的图形表示方法。它是软件工程中常用的建模工具之一,用于分析、设计和文档化系统的结构。
UML类图通常包括以下元素和关系:
- 类(Class):表示系统中的对象类型或模板,通常包括类名、属性(数据成员)和方法(成员函数)。
- 对象(Object):表示类的实例。
- 接口(Interface):表示一组相关的方法,可以由类来实现。
- 关联关系(Association):表示类之间的关联或连接。关联关系可以是双向或单向的,并且可以有关联的角色和多重性。
- 泛化关系(Generalization):表示类之间的继承关系,其中一个类是另一个类的子类。
- 依赖关系(Dependency):表示一个类依赖于另一个类,通常是因为一个类使用了另一个类的方法或属性。
- 聚合关系(Aggregation):表示整体与部分之间的关系,通常用于表示部分可以属于多个整体。
- 组合关系(Composition):表示更强的整体与部分之间的关系,通常用于表示部分只能属于一个整体。
1. 类(Class):
- 用矩形表示类,类名放在矩形的顶部中央。
- 类的属性位于矩形的第一个分区(类名下方),方法位于矩形的第二个分区。
- 属性和方法通常使用以下符号表示:
+
表示公共(public)属性或方法。-
表示私有(private)属性或方法。#
表示受保护(protected)属性或方法。~
表示包级私有(package-private)属性或方法。
2. 接口(Interface):
- 用带有
<<interface>>
标记的矩形表示。 - 接口名放在矩形的顶部中央。
3. 对象(Object):
- 用矩形表示对象,类名后面跟着对象名,通常使用下划线分隔。
- 如果对象是某个类的实例,可以在矩形的底部用一条虚线连接到该类。
4. 关联关系(Association):
- 用一条实线连接两个类,表示类之间的关联。
- 可以使用**
箭头
**表示关联的方向。 - 可以在关联线上标注关联名称。
5. 泛化关系(Generalization):
- 用带有**
三角箭头的实线
**表示,表示一个类是另一个类的子类。 - 子类在箭头的一侧,父类在箭头的另一侧。
6. 依赖关系(Dependency):
- 用一条**
虚线箭头
**表示,表示一个类依赖于另一个类。 - 依赖关系通常表示为类之间的引用或方法调用关系。
7. 聚合关系(Aggregation):
- 表示整体与部分之间的关系。
- 整体一侧通常有一个**
空心菱形
**表示。
8. 组合关系(Composition):
- 与聚合关系类似,但整体与部分之间的生命周期是强关联的。
- 整体一侧通常有一个**
实心菱形
**表示。