类间关系
- 关联:一个类中含有另一个类的属性,并通过该属性调用其方法,两个类是平等的。比依赖的耦合性更强,在类图中用实线带箭头表示该关系。指向方向:从关联发起方指向被关联方(可单向或双向)
Public class User {
private Light light;
public User (Light light) {
this.light = light;
}
public void handle () {
light.turnOn();
}
}
Public class Light {
public int turnOn() {
return 1;
}
public int turnOff() {
return -1;
}
}
- 依赖:将另一个类的对象固化在方法内部。比如一个类通过传入另一个类的对象为参数调用其方法。关系比较弱,在类图中用虚线带箭头表示该关系。- 指向方向:从使用者指向被依赖者
Public class User {
public void handle (Light light) {
light.turnOn();
}
}
Public class Light {
public int turnOn() {
return 1;
}
public int turnOff() {
return -1;
}
}
-
聚合(has-a):体现的是整体与部分的拥有关系。与关联的区别在与关系上,关联是平等的,而聚合是一种整体和部分的关系。部分可以被其他类使用。部分和整体的生存期不一致。在类图中,空心菱形指向整体,箭头指向部分。
-
组合(contains-a):关系比聚合更强,称为强聚合。部分只会被整体使用,不会被其他类使用。部分和整体的生存期一致。在类图中,实心菱形指向整体,箭头指向部分。
耦合性排序:继承 > 组合 > 聚合 > 关联 > 依赖
浙公网安备 33010602011771号