依赖(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 类