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

设计模式-外观模式、适配器模式

外观模式

Facade(外观或门面)—对象结构型模式定义:要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。提供一个高层次的接口,使得子系统更易于使用。

Fracade 为 ComponentA 、ComponentB 、ComponentC 向外( ClientA 、ClientB) 提供统一的接口

代码示例

class ComputerFacade {private CPU cpu;private Memory memory;private Disk disk;public void start() {cpu.initialize();memory.load();disk.read();}
}

外观类协调多个底层组件,提供业务导向的接口。

设计原则:

• 遵循迪米特法则(最少知识原则)

• 不符合开闭原则

适用场景分析:

1. 当一个复杂系统的子系统很多时,外观模式可以为系统设计一个简单的接口供外界访问。

适配器模式

Adapter(适配器)—类对象结构型模式定义:将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。

AdapterA 先将 LibraryClass 封装起来,其对外提供的 operation() 方法中调用 LibraryClass 对象的method()方法,若以后换类库,只需改 AdapterA 类或者创建新的 Adapter 实现类即可。

设计原则:

• 遵循开闭原则

使用场景:

1.比如系统扩展了,需要使用一个已有或新建立的类,但这个类又不符合系统的接口,怎么办?使用适配器模式。

2.编码解码、一拖三充电头、HDMI转VGA、Type-C转USB。

这里复习区分下装饰器模式和适配器模式:

适配器模式:适配新的接口,所以要实现和被适配对象是两个不同的接口。

装饰器模式:装饰原有的接口,所以要实现和被装饰对象相同的接口。

相关文章:

  • Oracle 递归 + Decode + 分组函数实现复杂树形统计进阶(第二课)
  • 基于Pandas和FineBI的昆明职位数据分析与可视化实现(三)- 职位数据统计分析
  • TCP/IP模型、OSI模型与C# Socket编程详解
  • (LeetCode 每日一题) 1498. 满足条件的子序列数目 (双指针)
  • Leetcode 3600. Maximize Spanning Tree Stability with Upgrades
  • ROS的可视化工具rviz介绍
  • 第十一节:Vben Admin 最新 v5.0 (vben5) 快速入门 - 角色菜单授权
  • 智能座舱HMI语音自动化测试技术和实现
  • Linux下的调试器-gdb(16)
  • 【Canvas与标志】圆规脚足球俱乐部标志
  • 机器学习在智能供应链中的应用:需求预测与库存优化
  • RAG的“排毒”指南:告别非知识内容的干扰,实现精准问答
  • 对象的finalization机制Test
  • 数据库 DML 语句详解:语法与注意事项
  • github上传代码步骤(http)
  • 【Docker基础】Docker容器管理:docker inspect及其参数详解
  • 【学习】《算法图解》第八章学习笔记:平衡树
  • spring:BeanPostProcessor后置处理器介绍
  • AI大模型调用方法
  • FastGPT私有化部署完整指南