当前位置: 首页 > news >正文

设计模式-结构型模式-外观模式

概述

外观模式 : Facade Pattern : 是一种 结构型设计模式.
它为复杂子系统提供一个简化的统一接口,使得客户端无需直接与子系统的各个组件交互,从而降低系统的耦合性

核心思想
统一接口:将多个子系统的复杂操作封装到一个“外观类”中,客户端只需通过外观类的方法调用即可完成操作。
降低复杂度:隐藏子系统的实现细节,简化客户端代码。

个人理解 : 有点像 Service层 整合 不同的 mapper,Controller 层只需要掉一个 service 的方法即可。
这样看来,实际上就是 多了一个 中间层。

角色

客户端(Client):调用外观类的代码。
外观类(Facade):定义简化接口,协调子系统的操作。
子系统(Subsystems):具体实现类,负责完成实际业务逻辑。

类图

在这里插入图片描述

案例

驾驶员 启动汽车的时候,只需要 按一下启动键,汽车的引擎会发动、仪表盘也会启动;无需 驾驶员 单个系统去操作。

子系统-引擎类

public class Engine {
    public void start() {
        System.out.println("engine start");
    }
}

子系统-仪表盘类

public class Dashboard {
    public void start(){
        System.out.println("dashboard start ... ");
    }
}

外观类 - 启动键

public class CarStarter {
    private Engine engine;
    private Dashboard dashboard;

    public CarStarter()
    {
        engine = new Engine();
        dashboard = new Dashboard();
    }
    // todo 就是这个方法,核心,对子系统的整合。
    public void start()
    {
        engine.start();
        dashboard.start();
    }
}

客户端-驾驶员

public class User {
    public static void main(String[] args) {
        CarStarter carStarter = new CarStarter();
        // 一键启动汽车
        carStarter.start();
    }
}
运行结果:
engine start
dashboard start ... 

相关文章:

  • 第十五届蓝桥杯PythonB组
  • Node.js 批量修改文件名脚本
  • 华为OD机试A卷 - 密室逃生游戏(C++ Java JavaScript Python )
  • MQ 如何保证数据一致性?
  • Linux下的socket演示程序2
  • 【Linux网络(七)】数据链路层
  • MySQL 表 t1 建立联合索引 (a, b, c),在 where a < ? and b > ? and c < ? 中哪些索引生效
  • 一台电脑最多能接几个硬盘?
  • localhost 和 127.0.0.1 的区别
  • 图解AUTOSAR_SWS_FlashDriver
  • 5G核心网(5GC)开户中,DNN(Data Network Name,数据网络名称)
  • 【目标检测】【深度学习】【Pytorch版本】YOLOV1模型算法详解
  • Python 爬虫案例
  • Redis:String 类型 内部实现、编码、命令及应用场景
  • Java基础 3.27
  • C语言学习关键笔记
  • DeepSeek详解:探索下一代语言模型
  • 并查集(Union-Find Set)课程笔记
  • 【JavaScript】闭包笔记
  • Ubuntu 防火墙配置
  • 个人主页网站制作教程/游戏推广渠道有哪些
  • wordpress 点击展开/百度推广seo效果怎么样
  • 开发公司取名/seo网站优化推广教程
  • wordpress底部版权怎么添加/西安网站seo公司
  • 盐山网站制作/广告联盟app下载赚钱
  • 帝国cms如何做电影网站/安卓优化大师下载安装到手机