图解UML
泛化(Generalization)
泛化是一种继承关系,表示一般与特殊的关系,它指一个更通用类(父类)与一个更特定类(子类)之间的关系。在Java代码中,这通常表现为类继承。
1
2class Bird extends Animal {
}实现(Implementation)
实现关系是类与接口之间的关系,表示类实现接口中的方法。在Java中,这通常表现为类实现接口。
1
2class Bird implements Fly {
}组合(Composition)
组合表示一种强“整体-部分”关联关系,其中部分(成员)不能脱离整体存在。在Java代码中,这通常表现为成员变量,并且该成员变量的生命周期完全由整体类管理。
1
2
3
4
5
6
7class Bird {
private Wing wing;
Bird() {
this.wing = new Wing();
}
}聚合(Aggregation)
聚合是关联的一种特殊形式,它表示“整体-部分”的关系,但与组合不同,部分(成员)可以脱离整体独立存在。聚合通常用于表示拥有关系。
1
2
3
4
5
6
7class Bird {
private List<Feather> feathers;
Bird(List<Feather> feathers) {
this.feathers = feathers;
}
}关联(Association)
关联是两个独立对象之间的一种链接,它们在逻辑上彼此连接,但是生命周期相互独立。关联可以是双向的,也可以是单向的。
1
2
3
4
5
6class Bird {
private Nest nest; // 单向关联
}
class Nest {
}依赖(Dependency)
依赖表示一个类依赖于另一个类的定义。通常,这意味着一个类的方法操纵另一个类的对象。在Java代码中,这通常表现为局部变量、方法的参数或者静态方法的调用。
1
2
3
4
5class Bird {
void migrate(South south) {
// 方法内部依赖South类
}
}