外观设计模式

java 复制代码
package com.jmj.pattern.facade;

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

    public void off(){
        System.out.println("关闭电灯...");
    }
}
java 复制代码
package com.jmj.pattern.facade;

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

    public void off(){
        System.out.println("关闭空调...");
    }

}
java 复制代码
package com.jmj.pattern.facade;

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

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

}
java 复制代码
package com.jmj.pattern.facade;

public class SmartAppliancesFacade {

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

    public SmartAppliancesFacade() {

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

    public void say(String message){
        if (message.equals("打开")){
            on();
        } else if (message.equals("关闭")) {
            off();
        }
        else {
            System.out.println("我听不懂你说的!!!");
        }
    }

    private void on() {
       light.on();
        airCondition.on();
        tv.on();
    }

    private void off() {
        light.off();
        airCondition.off();
        tv.off();
    }
}
java 复制代码
package com.jmj.pattern.facade;

public class Client{
    public static void main(String[] args) {
        SmartAppliancesFacade smartAppliancesFacade = new SmartAppliancesFacade();
        smartAppliancesFacade.say("关闭");
    }
}
相关推荐
shenyan~9 分钟前
关于 WASM: WASM + JS 混合逆向流程
开发语言·javascript·wasm
九转苍翎9 分钟前
Java SE(13)——工具类
java·工具类
小马爱打代码13 分钟前
数据结构 - Java 队列
java·数据结构
梦境虽美,却不长28 分钟前
C语言 学习 文件操作(开关,读写,定位,大小)操作 2025年6月8日12:19:24
c语言·开发语言·学习
Charlotte_jc37 分钟前
完美解决openpyxl保存Excel丢失图像/形状资源的技术方案
开发语言·python·excel·openpyxl
盖世英雄酱5813639 分钟前
🚀不改SQL,也能让SQL的执行效率提升100倍
java·数据库·后端
Java技术小馆1 小时前
Cursor链接远程服务器实现项目部署
java
用户0595661192091 小时前
深入理解Spring Boot框架:从基础到实践
java·spring·编程语言
西北大程序猿1 小时前
服务器代码知识点补充
服务器·开发语言·网络·c++·网络协议
晴空月明1 小时前
JVM 类加载过程与字节码执行深度解析
java