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

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

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

运行如下:

相关推荐
_Jimmy_34 分钟前
Nacos的三层缓存是什么
java·缓存
朝新_1 小时前
【实战】动态 SQL + 统一 Result + 登录校验:图书管理系统(下)
xml·java·数据库·sql·mybatis
百***92021 小时前
java进阶1——JVM
java·开发语言·jvm
迦蓝叶2 小时前
RDF 与 RDFS:知识图谱推理的基石
java·人工智能·数据挖掘·知识图谱·语义网·rdf·rdfs
百锦再2 小时前
选择Rust的理由:从内存管理到抛弃抽象
android·java·开发语言·后端·python·rust·go
yaoxin5211232 小时前
238. Java 集合 - 使用 ListIterator 遍历 List 元素
java·python·list
爱分享的Shawn_Salt2 小时前
IntelliJ IDEA初始化指南
java·ide·intellij-idea
Dxxyyyy2 小时前
零基础学JAVA--Day32(ArrayList底层+Vector+LinkedList)
java·开发语言
Pluchon2 小时前
硅基计划6.0 柒 JavaEE 浅谈JVM&GC垃圾回收
java·jvm·数据结构·java-ee·gc
whatever who cares2 小时前
在Java/Android中,List的属性和方法
android·java