依赖倒置原则

依赖倒置原则

/**
 * 依赖倒置原则(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();
  }
}

posted @ 2023-04-08 14:23  微辰  阅读(20)  评论(0编辑  收藏  举报