图解UML

  1. 泛化(Generalization)

    泛化是一种继承关系,表示一般与特殊的关系,它指一个更通用类(父类)与一个更特定类(子类)之间的关系。在Java代码中,这通常表现为类继承。

    1
    2
    class Bird extends Animal {
    }
  2. 实现(Implementation)

    实现关系是类与接口之间的关系,表示类实现接口中的方法。在Java中,这通常表现为类实现接口。

    1
    2
    class Bird implements Fly {
    }
  3. 组合(Composition)

    组合表示一种强“整体-部分”关联关系,其中部分(成员)不能脱离整体存在。在Java代码中,这通常表现为成员变量,并且该成员变量的生命周期完全由整体类管理。

    1
    2
    3
    4
    5
    6
    7
    class Bird {
    private Wing wing;

    Bird() {
    this.wing = new Wing();
    }
    }
  4. 聚合(Aggregation)

    聚合是关联的一种特殊形式,它表示“整体-部分”的关系,但与组合不同,部分(成员)可以脱离整体独立存在。聚合通常用于表示拥有关系。

    1
    2
    3
    4
    5
    6
    7
    class Bird {
    private List<Feather> feathers;

    Bird(List<Feather> feathers) {
    this.feathers = feathers;
    }
    }
  5. 关联(Association)

    关联是两个独立对象之间的一种链接,它们在逻辑上彼此连接,但是生命周期相互独立。关联可以是双向的,也可以是单向的。

    1
    2
    3
    4
    5
    6
    class Bird {
    private Nest nest; // 单向关联
    }

    class Nest {
    }
  6. 依赖(Dependency)

    依赖表示一个类依赖于另一个类的定义。通常,这意味着一个类的方法操纵另一个类的对象。在Java代码中,这通常表现为局部变量、方法的参数或者静态方法的调用。

    1
    2
    3
    4
    5
    class Bird {
    void migrate(South south) {
    // 方法内部依赖South类
    }
    }