设计模式—结构型模式之外观模式(门面模式)

设计模式---结构型模式之外观模式(门面模式)

外观(Facade)模式又叫作门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。

例子

我们的电脑会有很多 组件,比如CPU、硬盘、内存等等;如果我们电脑需要启动的话,需要挨个去调用每个组件的启动方法;停止逻辑也是一样;我们可以提取到一个组合的类中,提供一个整体的启动方法,直接调用,这就是门面模式的使用。

代码如下:

java 复制代码
public class Cpu {
    public void start(){
        System.out.println("CPU启动了");
    }
}
public class Disk {
    public void start(){
        System.out.println("硬盘启动了");
    }
}
public class Memory {
    public void start(){
        System.out.println("内存启动了");
    }
}
/**
 * 门面类
 */
public class ComputerFaced {
    private Cpu cpu;
    private Memory memory;
    private Disk disk;

    public ComputerFaced(){
        this.cpu = new Cpu();
        this.memory = new Memory();
        this.disk = new Disk();
    }

    public void start(){
        this.cpu.start();
        this.memory.start();
        this.disk.start();
    }
}

我们的客户使用,就是如下:

java 复制代码
public class FacedTest {
    public static void main(String[] args) {
        ComputerFaced computerFaced = new ComputerFaced();
        computerFaced.start();
    }
}

运行如下:

相关推荐
float_六七2 小时前
IntelliJ IDEA双击Ctrl的妙用
java·ide·intellij-idea
能摆一天是一天3 小时前
JAVA stream().flatMap()
java·windows
颜如玉4 小时前
🤲🏻🤲🏻🤲🏻临时重定向一定要能重定向🤲🏻🤲🏻🤲🏻
java·http·源码
程序员的世界你不懂5 小时前
【Flask】测试平台开发,新增说明书编写和展示功能 第二十三篇
java·前端·数据库
星空寻流年5 小时前
设计模式第一章(建造者模式)
java·设计模式·建造者模式
gb42152876 小时前
java中将租户ID包装为JSQLParser的StringValue表达式对象,JSQLParser指的是?
java·开发语言·python
曾经的三心草6 小时前
Python2-工具安装使用-anaconda-jupyter-PyCharm-Matplotlib
android·java·服务器
蒋星熠6 小时前
Flutter跨平台工程实践与原理透视:从渲染引擎到高质产物
开发语言·python·算法·flutter·设计模式·性能优化·硬件工程
Metaphor6926 小时前
Java 高效处理 Word 文档:查找并替换文本的全面指南
java·经验分享·word
ChinaRainbowSea6 小时前
7. LangChain4j + 记忆缓存详细说明
java·数据库·redis·后端·缓存·langchain·ai编程