泛化关系(Generalization)、依赖关系(Dependency)、关联关系(Association)、聚合关系(Aggregation)、组合关系(Composite)
泛化关系-
表现为继承或实现
依赖关系
表现为函数中的参数,使用到其他类的方法,即依赖到其他类的定义。
具体可为:局部变量、方法的形参、静态方法的调用
class Driver {
//使用形参方式发生依赖关系
public void drive1(Car car){
car.run();
}
//使用局部变量发生依赖关系
public void drive2(){
Car car = new Car();
car.run();
}
//使用静态变量发生依赖关系
public void drive3(){
Car.run();
}
}
关联关系(特殊的依赖关系):
类与类之间的联系,多表现为单向关系或双向关系,是类的成员变量(has a),
比如人拥有身份证,身份证对应一个人
// 单项一对一关系
public class Person{
//使用成员变量形式实现关联
private IDCard card;
}
public class IDCard {}
// 双向一对一关系
public class Person{
//使用成员变量形式实现关联
private IDCard card;
}
public class IDCard {
private Person person;
}
聚合关系(较强的关联关系):
是类的成员变量,创建的时候可以不传入对象,通过setter传入对象
车由车轮组成,车没了,车轮可以单独存在
class Driver {
// 生命周期不一致
Car mycar;
// setter方法中传入对象,实现聚合
public void setCar(Car car){
mycar = car;
}
}
组合关系(更强的关联关系):
是类的成员变量,通过构造传入对象,一起创建(生命周期一致)
人由头和驱干组成,人没了,头和驱干不存在
class Driver {
// 生命周期一致
Car mycar;
// 构造方法中传入对象,实现组合
public Driver(Car car){
mycar = car;
}
}