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

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

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

运行如下:

相关推荐
五岳10 小时前
分库分表数据源ShardingSphereDataSource的Connection元数据误用问题分析
java·mysql·爬坑
带刺的坐椅10 小时前
迈向 MCP 集群化:Solon AI (支持 Java8+)在解决 MCP 服务可扩展性上的探索与实践
java·ai·llm·solon·mcp
鼠爷ねずみ11 小时前
SpringCloud前后端整体开发流程-以及技术总结文章实时更新中
java·数据库·后端·spring·spring cloud
代码or搬砖11 小时前
String字符串
android·java·开发语言
AM越.13 小时前
Java设计模式详解--装饰器设计模式(含uml图)
java·设计模式·uml
59803541513 小时前
【java工具类】小数、整数转中文大写
android·java·开发语言
JIngJaneIL13 小时前
基于java + vue个人博客系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
吃喝不愁霸王餐APP开发者13 小时前
Java后端服务在对接全国性霸王餐API时的多数据中心部署与就近调用策略
java·开发语言
从心归零13 小时前
springboot-jpa的批量更新方法
java·spring boot·spring