10_外观模式

2021-01-13  本文已影响0人  真是个点子王

结构

实例

public class Light {
    public void on(){
        System.out.println("打开电灯");
    }

    public void off(){
        System.out.println("关闭电灯");
    }
}

public class AirCondition {
    public void on(){
        System.out.println("打开空调");
    }
    public void off(){
        System.out.println("关闭空调");
    }
}

public class TV {
    public void on(){
        System.out.println("打开电视机");
    }
    public void off(){
        System.out.println("关闭电视机");
    }
}

public class SmartAppliancesFacade {

    private Light light;
    private TV tv;
    private AirCondition airCondition;

    public SmartAppliancesFacade() {
        light = new Light();
        tv = new TV();
        airCondition = new AirCondition();
    }

    // 通过语音控制
    public void say(String msg){
        if(msg.contains("打开")){
            on();
        }else if(msg.contains("关闭")){
            off();
        }else{
            System.out.println("我还听不懂你在说什么");
        }
    }

    // 一键打开功能
    private void on(){
        light.on();
        tv.on();
        airCondition.on();
    }

    // 一键关闭功能
    private void off(){
        light.off();
        tv.off();
        airCondition.off();
    }
}

public class Client {
    public static void main(String[] args) {
        SmartAppliancesFacade facade = new SmartAppliancesFacade();

        facade.say("打开家电");

        System.out.println("=======================");

        facade.say("关闭家电");

    }
}

上一篇 下一篇

猜你喜欢

热点阅读