简介
- 类的常见关系有六种,从弱到强为:依赖<关联<聚合<组合<泛化=实现。
依赖(Dependency)
- 是一种使用的关系,即一个类需要另一个类的协助,尽量不双向依赖。
表现
- 局部变量。
public class Person {
public void program() {
Computer computer = new Computer();
}
}
- 方法的参数或返回值。
public class Person {
public Computer program(Computer computer) {
return computer;
}
}
- 静态方法的调用。
public class Computer {
public static void program() {
}
}
public class Person {
public void program() {
Computer.program();
}
}
关联(Association)
- 是一种拥有的关系,一个类知道另一个类的属性和方法。
表现
- 成员变量。
public class Teacher {
private Student student;
}
其他关联
- 双向关联。
- 自关联。
聚合(Aggregation)和组合(Composition)
- 聚合:整体和部分的关系,整体与部分可以分开。
- 组合:整体与部分的关系,但是整体与部分不可以分开。
表现
- 成员变量。
public class People {
private List<Person> personList;
public void setPersonList(List<Person> personList) {
this.personList = personList;
}
}
public class Person {
private Hand hand = new Hand();
}
泛化(Generalization)
- 是一种继承关系,用于描述父类与子类之间的关系。
表现
- 继承父类。
public class Man extends Person {
}
实现(Realization)
- 是一种实现接口关系,类是接口所有行为的实现。
表现
- 实现接口。
public interface Eat {
void eat();
}
public class Person implements Eat {
@Override
public void eat() {
}
}