跳转至

UML:类与类之间关系图绘制

一、UML 类图关系

按耦合强度从强到弱:

1. 依赖(Dependency)

use a,局部变量、方法参数。

箭头:----> 虚线
含义:一个类用到另一个类
class Car {
    void run(Engine e) {}  // Engine 是参数
}

2. 关联(Association)

has a,长期持有。

箭头:——> 实线
class Student {
    Course c;   // 长期引用
}

3. 聚合(Aggregation)

has a 但部分可独立。整体和部分是"has-a",部分可以脱离整体存在。

空心菱形 ——> 实线

如:球队和球员,球队解散球员还在。

4. 组合(Composition)

contains a,部分不能脱离整体。

实心菱形 —— 实线

如:人和心脏,人没了心脏也没了。

5. 继承(Generalization)

子类继承父类。

空心三角 ▷ —— 实线

6. 实现(Implementation)

类实现接口。

空心三角 ▷ - - 虚线

二、关系强度

依赖 < 关联 < 聚合 < 组合 < 实现/继承

三、示例

   依赖 ┄┄>
   关联 ──>
   聚合 ◇──>
   组合 ◆──
   继承 ▷──
   实现 ▷┄┄

四、画图工具

  • PlantUML(代码画图)。
  • draw.io / ProcessOn。
  • IDEA 自带 UML。

面试加分

  • 聚合 vs 组合:关键看生命周期是否一致。组合同生共死,聚合可分离。
  • 依赖是最弱关系,尽量少用。