依赖(Dependency)
- 定义:一个类使用到了另一个类(例如作为参数、局部变量等)。
- 表示:虚线箭头,箭头指向被依赖的类。
- 关键词:
uses
、depends on
。 - 示例:类 A 的某个方法使用类 B 作为参数或返回值。
A -------▷ B
(虚线箭头)
关联(Association)
- 定义:类与类之间的一种结构关系,表示一个类知道另一个类,通常以成员变量的形式存在。
- 表示:实线连接,可加上箭头表示导航方向。
- 可选信息:多重性(1、0…1、*)、角色名、可见性。
- 示例:学生类与班级类之间的关系。
Student ──────── Class1 1..*
聚合(Aggregation)
- 定义:一种特殊的关联,表示“整体-部分”关系,部分可以独立于整体存在。
- 表示:空心菱形指向整体。
- 示例:班级聚合多个学生,学生可独立存在。
Class ◇───────── Student
组合(Composition)
- 定义:比聚合更强的“整体-部分”关系,部分不能独立存在,生命周期与整体相同。
- 表示:实心菱形指向整体。
- 示例:人由心脏、肝脏等组成,器官不能脱离人体单独存在。
Person ◆───────── Heart
继承 / 泛化(Generalization)
- 定义:子类继承父类的属性和方法,是一种“is-a”关系。
- 表示:空心三角形箭头指向父类。
- 示例:猫继承自动物。
Cat ─────────▷ Animal(空心三角形)
实现(Realization)
- 定义:类实现接口,是一种“can do”关系。
- 表示:虚线+空心三角形箭头指向接口。
- 示例:类实现接口 Runnable。
MyClass - - -▷ Runnable
(虚线+三角)
总结
关系 | 表示方式 | 含义/语义 | 典型示例 |
---|
依赖 | 虚线箭头 | 临时使用 | 方法参数、返回值 |
关联 | 实线 | 拥有成员引用 | 学生与班级 |
聚合 | 空心菱形+实线 | 整体与部分,可独立存在 | 班级和学生 |
组合 | 实心菱形+实线 | 整体与部分,生命周期一致 | 人与器官 |
泛化 | 实线+空心三角箭头 | 继承,是一种“是”关系 | 动物与猫 |
实现 | 虚线+空心三角箭头 | 接口实现 | Runnable 与 Thread 类 |