UML的类图共有6种关系:泛化(Generalization),实现(Realization),依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition)
- 泛化很简单,对应java的extends。也就是常说的继承。
- 实现也很简单,对应java的implmentes。也就是接口的实现。
- 依赖:对应java的局部变量、函数参数、静态方法的引用。如:A依赖B和C
public class A() {
public void test(B b) {
b.ttt();
}
public C test() {
return new C();
}
}
- 关联,聚合,组合的关系比较复杂,重点介绍一下。三者在java的表现都是成员变量。如:A和B是关联关系
public class A {
private B b;
public void test() {
b.ttt();
}
}
?
关联表示两个类在同一个层次,可以相互使用;
聚合是强化的关联,表示整体和局部的关系,关联和聚合的区别纯粹是概念上的,而且严格反映在语义上。聚合还暗示着实例图中不存在回路。换言之,只能是一种单向关系。如:飞机和机场的关系,机场能使用飞机,但是飞机不能使用机场
组合是聚合的一种特殊形式,除了整体和局部的概念, 组合关系还包含的生命周期的概念,也就是说,局部是和整体一同产生,一同消亡的。如:汽车和车轮
?
?