当前位置: 首页 > 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。

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

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

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

http://www.lqws.cn/news/571393.html

相关文章:

  • 设备健康状态实时监测:从技术原理到中讯烛龙的智能实践
  • X-Search:Spring AI实现的AI智能搜索
  • redis延时双删,为什么第一次删除
  • 检查达梦外部表
  • ROS的可视化工具rviz介绍
  • wpf的Binding之UpdateSourceTrigger
  • PaddleNLP
  • 桌面小屏幕实战课程:DesktopScreen 18 FONTPAINT
  • RAG检索增强生成在垂类AI应用效能优化中的应用
  • 【硬核数学】6. 升级你的线性代数:张量,深度学习的多维数据语言《从零构建机器学习、深度学习到LLM的数学认知》
  • 【Java EE初阶 --- 多线程(进阶)】锁策略
  • 构建创意系统:驾驭Audition与Photoshop的AI之力,洞悉原子化设计哲学
  • Cursor1.1.6安装c++插件
  • MyBatis实战指南(八)MyBatis日志
  • 【数据集处理】基于 3D-GloBFP建筑轮廓数据 栅格化建筑数据(完整Python代码)
  • Day.46
  • 水果维生素含量排名详表
  • 【硬核数学】9. 驯服“梯度下降”:深度学习中的优化艺术与正则化技巧《从零构建机器学习、深度学习到LLM的数学认知》
  • 【JavaSE】反射学习笔记
  • 中州养老:学会设计数据库表
  • WebRTC(十三):信令服务器
  • Spring事件驱动模型核心:ApplicationEventMulticaster初始化全解析
  • 图书管理系统练习项目源码-前后端分离-使用node.js来做后端开发
  • NV064NV065美光固态闪存NV067NV076
  • 申论审题训练
  • DEPTHPRO:一秒内实现清晰的单目度量深度估计
  • 云端可视化耦合电磁场:麦克斯韦方程组的应用-AI云计算数值分析和代码验证
  • Leetcode百题斩-双指针
  • 电容屏触摸不灵敏及跳点问题分析
  • PyEcharts教程(010):天猫订单数据可视化项目