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