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

结构型——适配器模式

适配器模式

适配器模式是一种用于解决两个不兼容接口之间协同工作问题的结构型设计模式,其核心思想是通过建立一个中间层(适配器)将现有的接口转换为客户端期望的接口

特点

  • 兼容性:适配器模式将不兼容的接口转换为兼容的接口,从而实现两个不兼容的类协同工作。
  • 透明性:客户端调用适配器时无需感知接口转换的过程,保持调用逻辑简洁。
  • 复用性:适配器模式可以复用已有的接口,从而实现对现有接口的扩展和复用。

模式结构

  • 目标接口:定义客户端所期待的接口,即客户端所期望的接口。
  • 适配接口:已有的类或者第三方接口,即需要适配的接口。
  • 适配器:实现目标接口,包装适配接口。

简单示例

# 目标接口
class TypeCCharger:
    def charge(self):
        print("Charging with Type C")

# 适配接口
class MicroUSBCharger:
    def old_charge(self):
        print("Charging with Micro USB")

# 适配器
class TypeCAdapter(TypeCCharger):
    def __init__(self, micro_usb_charger):
        self.micro_usb_charger = micro_usb_charger

    def charge(self):
        print("Adapting Micro USB to Type C")
        return self.micro_usb_charger.old_charge()


# 客户端代码
if __name__ == "__main__":
    type_c_charger = TypeCCharger()
    type_c_charger.charge()
    micro_usb_charger = MicroUSBCharger()
    type_c_adapter = TypeCAdapter(micro_usb_charger)
    type_c_adapter.charge()

示例类图:

实现
组合
«interface»
TypeCCharger
+charge()
MicroUSBCharger
+old_charge()
TypeCAdapter
-micro_usb_charger: MicroUSBCharger
+charge()

其实适配器一般来说有俩种,上述的是对象适配器,还有一种是类适配器。类适配器需要编程语言支持多继承,但是python的多继承会发生菱形继承问题,所以python不支持类适配器。

适用场景

  • 新旧接口不兼容
  • 使用第三方库,统一接口规范
  • 为多个不同接口统一访问入口

优缺点

  • 优点:

    • 提高代码的复用性,兼容旧系统
    • 符合开闭原则
    • 解耦了客户端与被适配接口
  • 缺点:

    • 适配器类数量过多,增加系统复杂度

相关文章:

  • 二维数组常见应用场景以及示例
  • [Ai 力扣题单] 数组基本操作篇 27/704/344/386
  • Linux系统性能调优
  • 数据库系统原理|课程回顾与习题部分参考答案
  • 区间预测 | Matlab实现QRBiTCN分位数回归双向时间卷积神经网络注意力机制时序区间预测
  • Python画图
  • Markdown:Mermaid 画图
  • 【Go类库分享】Go expr 通用表达式引擎
  • Flutter 从入门到进阶:构建跨平台应用的最佳实践
  • 结构型——装饰器模式
  • 【Jmeter】使用教程
  • Redis Sentinel 及 Redisson 连接问题全解析
  • 【Qt】qApp简单介绍
  • 基于Flink SQL的实时指标多维分析模型
  • Kotlin高效实现 Android ViewPager2 顶部导航:动态配置与性能优化指南
  • 大语言模型的潜力是否被高估
  • vs code配置 c/C++
  • 剑指 Offer II 075. 数组相对排序
  • 详细介绍c++中的友元函数和友元类
  • Swin Transformer(Swin-T)
  • 广州割双眼皮网站建设/品牌广告和效果广告的区别
  • 网站logo怎么做才清晰/北京aso优化
  • 免费站推广网站链接/滴滴友链
  • 潍坊网站建设/网络推广是什么意思
  • 素材网站无水印/免费域名的网站
  • wordpress 如何重新安装/长春网站建设方案优化