【设计模式】结构型设计模式之 门面模式

介绍

门面模式(Facade Pattern)是一种常用的设计模式,属于结构型模式的范畴。它为子系统中的一系列接口提供一个简化的统一接口,即一个外观(Facade),从而使子系统更加容易使用。门面模式并不修改子系统的功能,而是为用户提供了一个更高层次的接口,隐藏了子系统内部的复杂性,减少了客户代码与子系统之间的耦合度。

关键概念:

  • 门面(Facade):这是模式的核心,它为客户端提供了一个单一的接口,用于访问子系统中的一组接口。门面类知道哪些子系统类需要被调用以及如何调用,从而简化了客户端与子系统之间的交互。
  • 子系统(Subsystems):包含了多个类和接口,它们实现了系统的实际功能,但这些接口可能对客户端来说过于复杂或难以直接使用。子系统通常是高度耦合的,而门面模式则在它们之上提供了一个松耦合的接口。
  • 用。子系统通常是高度耦合的,而门面模式则在它们之上提供了一个松耦合的接口。

目的与优点:

  • 简化接口:为复杂的子系统提供一个简单的接口,使得客户端不需要了解子系统的内部结构。
  • 减少耦合:降低了客户端与子系统之间的耦合度,使得子系统的更改不会直接影响到客户端,反之亦然。
  • 提高灵活性:便于添加或移除子系统功能,而不会影响到客户端代码。
  • 提高可测试性:可以通过门面来对子系统进行测试,而不需要关注子系统的内部实现细节。
  • 更好的重用性:通过提供一致的接口,使得子系统更容易被其他系统或模块重用。

应用场景

利用门面模式提高接口易用性

门面模式可以通过提供一组简单、易用的接口来隐藏系统底层的复杂性,例如 Linux 系统上的系统函数就可以看做一种门面。Linux 支持的 Shell 脚本又是对 Linux 系统函数的一层封装也是门面模式的一种。

利用门面模式提高接口性能

如果一个操作需要调用 a、b、c 三个接口,此时客户端和服务端需要建立三次连接分三次传输数据。此时如果可以提供一个门面接口实现业务逻辑。让客户端只需去请求一次,那么可以提高接口的性能。

门面模式解决事物问题

如果要在三次调用中保证事物,例如接口 a、b 同时成功或失败。要支持两个接口调用在一个事物中控制是很难实现的,此时如果将 a、b 生成一个门面接口 c 那么实现起来就简单多了。

相关推荐
Kel7 分钟前
LangChain.js 架构设计深度剖析
人工智能·设计模式·架构
Pkmer39 分钟前
古法编程: 装饰器模式
设计模式·全栈
深海鱼在掘金5 小时前
从Claude Code泄露源码看工程架构:第九章 —— Claude Code 与架构的总结展望
人工智能·设计模式·架构
深海鱼在掘金5 小时前
从Claude Code泄露源码看工程架构:第六章 —— 权限系统的四道闸门与纵深防御机制
人工智能·设计模式·架构
深海鱼在掘金5 小时前
从Claude Code泄露源码看工程架构:第八章 —— MCP 接入层设计
人工智能·设计模式·架构
深海鱼在掘金5 小时前
从Claude Code泄露源码看工程架构:第七章 —— 多 Agent 协作机制与上下文隔离策略
人工智能·设计模式·架构
深海鱼在掘金5 小时前
从Claude Code泄露源码看工程架构:第三章 — CLI 启动链路的分流策略与按需加载机制
前端·人工智能·设计模式
深海鱼在掘金5 小时前
从 Claude Code 泄露源码看工程架构:第五章 —— 工具框架的三层装配线
人工智能·设计模式·架构
深海鱼在掘金5 小时前
从Claude Code泄露源码看工程架构:第四章—— 一次请求的完整生命周期与流式执行引擎设计
人工智能·设计模式·命令行
geovindu7 小时前
go: Bridge Pattern
开发语言·设计模式·golang·软件构建·桥接模式