
用心理解设计模式——外观模式 / 门面模式 (Facade Pattern)
降低耦合度:通过引入外观类,客户与子系统之间的直接耦合被切断,减少了因子件的复杂依赖关系。尤其是在客户层级较多且子系统功能较为复杂的情况下,外观模式能够有效地减少网状耦合。 符合迪米特法则:外观模式遵循迪米特法则,只允许在调用的类与接口的使用类保持关联。客户只需关注外观类接口,无需深入了解子系统的内部逻辑。 支持开闭原则:外观类可以在不修改子系统代码的前提下进行扩展和修改。这意味着当子系统的某些部分需要进行维护或功能扩展时,不会对现有的客户产生影响。
发布日期:2021-05-19 17:31:55
浏览次数:13
分类:精选文章
本文共 1068 字,大约阅读时间需要 3 分钟。
外观模式简述
作为结构型设计模式之一,外观模式通过提供一个统一的接口,简化子系统的使用,使子系统更为高效和易用。这一模式尤其在面对复杂子系统和多层次调用时,能够有效降低客户的技术门槛。
外观模式的定义
外观模式(Facade Pattern)定义了一个一致的接口,用于整个子系统的组件。通过引入一个外观类,客户端可以通过这一 thống一接口与子系统交互,无需关心子系统内部的复杂结构和实现细节。
外观模式的结构解析
外观模式的核心角色分为两个部分:子系统及其外观。子系统可能由多个模块组成,每个模块都可以独立使用,但它们之间存在一定的关联。而外观则起到一个桥梁的作用,将这些模块的接口封装成一个高级功能的接口供外部调用。
子系统
子系统可以看作一个模块集合,它提供一组可独立使用的接口。这些接口通常是为了与外部系统或其他模块进行通信而定义的。虽然子系统可能由多个模块组成,但其整体interface要与外观模式的接口保持一致。
外观
外观类的主要职责是实现子系统的接口,将前者的一组接口组织和封装,提供一个更高级别的调用接口。此外,外观类还负责管理和初始化子系统及其各个模块,确保在端到端流程中各模块能够协同工作。
外观模式的优点
作为一种结构型设计模式,外观模式具有一些显著的优势:
外观模式的适用场景
外观模式在以下情况下表现尤为突出:
- 当客户与子系统之间存在复杂的coupling(耦合关系)时。
- 当子系统内部有多个模块或组件需要协同工作时。
- 当需要提供一个统一的接口,简化客户的使用流程所需。
外观模式的经典示例
在软件开发实践中,外观模式常常被用来实现"一键"功能或进程管理。例如,婚庆包办服务可以通过外观类聚合多个子系统模块(如礼物预订、相亲平台、摄影团队等),而客户只需通过简单的调用即可完成整体服务。
通过上述介绍可以看出,外观模式是面对复杂系统设计时的重要选择。它不仅简化了客户的调用逻辑,还能够显著降低系统间的耦合度,是一个非常适合中小型应用场景的设计模式。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年05月05日 14时18分30秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
问题解决28:微信网页授权出现redicet_uri 参数错误
2019-03-16
LeakCanary 中文使用说明
2019-03-16
反转链表,(5)
2019-03-16
Camera (api1)的打开过程
2019-03-16
wxwidgets绘图
2019-03-16
wxwidgets事件处理
2019-03-16
用OpenCv转换原始图像数据到wximage
2019-03-16
codeblocks下wxWidgets编译与配置
2019-03-16
OpenCv+wxwidgets尝试
2019-03-16
wxwidgets自定义事件+调试
2019-03-16
wxwidgets编写多线程程序--wxThread
2019-03-16
BUUCTF:[湖南省赛2019]Findme
2019-03-16
ciscn2021西北部分pwn
2019-03-17
p144循环网络
2019-03-17
Finger.01 - ESP8266模块STA模式调试
2019-03-17
三维点云处理
2019-03-17
springboot security 基于redis的session共享(7)
2019-03-17
vue 权限管理 菜单按钮权限控制(7)
2019-03-17
vue 权限管理 主题切换(8)
2019-03-17
spring
2019-03-17