依赖倒置原则
依赖倒置原则
/**
* 依赖倒置原则(DIP)
* TV(打开之前,)就可以控制灯的开关状态
* 高方法,实现前,必须实现低方法, 执行入库前,记录日历
*/
public class dipTest {
// 定义一个接口:开关
public interface Switchable {
void turnOn();
void turnOff();
}
public static class Light implements Switchable {
@Override
public void turnOn() {
System.out.println("Light is on");
}
@Override
public void turnOff() {
System.out.println("Light is off");
}
}
// 高层模块:电视
static class TV {
private Switchable switchable;
public TV(Switchable switchable) {
this.switchable = switchable;
}
public void turnOn() {
switchable.turnOn();
System.out.println("打开电视");
}
public void turnOff() {
switchable.turnOff();
System.out.println("关闭电视");
}
}
public static void main(String[] args) {
// 创建一个灯对象
Light light = new Light();
// 创建一个电视对象,它依赖于灯对象
TV tv = new TV(light);
// 打开电视
tv.turnOn();
// 关闭电视
tv.turnOff();
}
}