对象的依赖关系有三种方式来传递,如下所示:
1.构造函数传递对象依赖关系
在类中通过构造函数声明依赖对象,按照依赖注入的说法,这种方式叫做构造函数注入。
public interface IDriver {
//是司机就应该会驾驶汽车
public void drive();
}
public class Driver implements IDriver{
private ICar car;
//构造函数注入
public Driver(ICar _car){
this.car = _car;
}
//司机的主要职责就是驾驶汽车
public void drive(){
this.car.run();
}
}
2.Setter方法传递依赖对象
在抽象中设置Setter方法声明依赖关系
public interface IDriver {
//车辆型号
public void setCar(ICar car);
//是司机就应该会驾驶汽车
public void drive();
}
public class Driver implements IDriver{
private ICar car;
public void setCar(ICar car){
this.car = car;
}
//司机的主要职责就是驾驶汽车
public void drive(){
this.car.run();
}
}
3.接口声明依赖对象
在接口的方法中声明依赖对象
public interface IDriver {
//是司机就应该会驾驶汽车
public void drive(ICar car);
}
依赖倒置原则的本质就是通过抽象(接口或抽象类)使各个类或模块的实现彼此独立,不互相影响,实现模块间的松耦合