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

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

外观(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();
    }
}

运行如下:

相关推荐
lightgis4 分钟前
个人支出智能分析系统
java
春生野草7 分钟前
MyBatis中关于缓存的理解
java·缓存·mybatis
oioihoii30 分钟前
C++11 Generalized(non-trivial) Unions:从入门到精通
java·开发语言·c++
颯沓如流星34 分钟前
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
java·重构·装饰器模式
惜鸟1 小时前
springboot 项目的包结构设计(一)
java·spring boot
Dream耀1 小时前
解锁JavaScript函数式编程的核心技能
前端·javascript·设计模式
程序员岳焱1 小时前
Stream 流式编程在实际项目中的落地:从业务场景到代码优化
java·后端·程序员
l0sgAi1 小时前
EasyExcel读取多层嵌套表头数据
java·程序员
酷爱码1 小时前
Maven 配置中绕过 HTTP 阻断机制的完整解决方案
java·http·maven
快乐肚皮2 小时前
堆排序详解:从理论到实践
java·算法·排序算法·堆排序