外观设计模式

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("关闭");
    }
}
相关推荐
多米Domi011几秒前
0x3f 第43天 黑马点评全量复习一遍 + 栈两题
开发语言·数据结构·python·算法·leetcode
码农水水7 分钟前
京东Java面试被问:分布式会话的一致性和容灾方案
java·开发语言·数据库·分布式·mysql·面试·职场和发展
白小筠10 分钟前
迭代器与生成器
开发语言·python
郝学胜-神的一滴10 分钟前
Linux网络字节序详解:从理论到实践
linux·服务器·c语言·开发语言·c++·网络协议·程序人生
indexsunny17 分钟前
互联网大厂Java求职面试实录:Spring Boot微服务在电商场景中的应用及技术深度解析
java·数据库·spring boot·缓存·微服务·面试·电商
夏幻灵17 分钟前
Java中的this关键字解析与应用
java·开发语言·python
移幻漂流17 分钟前
JNI的本质解析:Android Framework视角下的Java-Native衔接机制
android·java·开发语言
猿小羽21 分钟前
Spring AI + MCP 实战:构建下一代智能 Agent 应用
java·spring boot·llm·ai agent·spring ai·mcp·model context protocol
baivfhpwxf202321 分钟前
C# Task.Run 和 Task.Factory.StartNew 的区别
开发语言·c#
难得的我们27 分钟前
C++中的状态模式
开发语言·c++·算法