外观设计模式

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("关闭");
    }
}
相关推荐
dingdingfish2 分钟前
Bash学习 - 第3章:Basic Shell Features,第5节:Shell Expansions
开发语言·学习·bash
rainbow68893 分钟前
C++开源库dxflib解析DXF文件实战
开发语言·c++·开源
不倒翁玩偶3 分钟前
IDEA导入新的SpringBoot项目没有启动按钮
java·spring boot·intellij-idea
deepxuan4 分钟前
Day7--python
开发语言·python
小小小米粒18 分钟前
Maven Tools
java
禹凕19 分钟前
Python编程——进阶知识(多线程)
开发语言·爬虫·python
蜡笔小马32 分钟前
10.Boost.Geometry R-tree 空间索引详解
开发语言·c++·算法·r-tree
IOsetting32 分钟前
金山云主机添加开机路由
运维·服务器·开发语言·网络·php
kali-Myon32 分钟前
2025春秋杯网络安全联赛冬季赛-day1
java·sql·安全·web安全·ai·php·web
我是咸鱼不闲呀36 分钟前
力扣Hot100系列20(Java)——[动态规划]总结(下)( 单词拆分,最大递增子序列,乘积最大子数组 ,分割等和子集,最长有效括号)
java·leetcode·动态规划