外观设计模式

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("关闭");
    }
}
相关推荐
计算机安禾22 分钟前
【c++面向对象编程】第25篇:仿函数(函数对象):重载operator()
开发语言·c++·算法
Rust语言中文社区23 分钟前
【Rust日报】2026-05-14 Pyrefly v1.0 正式发布:快速的 Python 类型检查器和语言服务器
开发语言·后端·python·rust
吴声子夜歌28 分钟前
Java——定时任务
java
吴声子夜歌39 分钟前
Java——原子变量和CAS
java·cas
野生技术架构师41 分钟前
2026最新Java面试八股文天花板(含详细解析)
java·jvm·spring
kkeeper~43 分钟前
0基础C语言积跬步之深入理解指针(4)
c语言·开发语言
小碗羊肉1 小时前
【JavaWeb | 第十二篇】项目实战——登录功能
java·前端·数据库
周末也要写八哥1 小时前
在C++中使用预定义宏
开发语言·c++·算法
喜欢小苹果的码农1 小时前
Java动态定时任务
java
Data_Journal1 小时前
使用Python lxml轻松进行网络爬取
开发语言·php