当前位置:首页>文章>设计模式>适配器模式详解(Python版)——结构型设计模式实战教程

适配器模式详解(Python版)——结构型设计模式实战教程

适配器模式详解

1️⃣ 概念

定义: 是将一个类的接口转换成客户期望的另一个接口;使原本不兼容的类可以一起工作。
类型: 结构性

2️⃣ 适用场景

  • 已经存在的类,方法和需求不匹配时(方法结果相同或相似)
  • 不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品不同厂家造成功能类似而接口不相同情况下的解决方案

3️⃣ 优点

  • 能提高类的透明度和复用,现有的类复用但不需要改变
  • 目标类和适配器类解耦,提高程序扩展性
  • 符合开闭原则

4️⃣ 缺点

  • 适配器编写过程中需要全面考虑,可能会增加系统复杂性
  • 增加系统代码可读的难度

5️⃣ 适配器模式的扩展

对象适配器
类适配器
它们之间的主要区别就是一个是通过组合来进行操作的,一个是通过继承来进行操作的。

6️⃣ 适配器模式Coding

类适配器模式

① 创建被适配者

class Adaptee:
    def adaptee_request(self):
        print("被适配者的方法")

② 创建目标适配

class ConcreteTarget(Target):
    def request(self):
        print("concreteTarget目标方法")

③ 创建接口

from abc import ABC, abstractmethod

class Target(ABC):
    @abstractmethod
    def request(self):
        pass

④ 创建适配方法

class Adapter(Adaptee, Target):
    def request(self):
        # ...
        super().adaptee_request()
        # ...

⑤ 创建测试类

def main():
    target = ConcreteTarget()
    target.request()

    adapter_target = Adapter()
    adapter_target.request()

if __name__ == "__main__":
    main()

对象适配器模式

① 创建被适配者

class Adaptee:
    def adaptee_request(self):
        print("被适配者的方法")

② 创建接口

from abc import ABC, abstractmethod

class Target(ABC):
    @abstractmethod
    def request(self):
        pass

③ 创建目标适配

class ConcreteTarget(Target):
    def request(self):
        print("concreteTarget目标方法")

④ 创建Adapter

class Adapter(Target):
    def __init__(self):
        self.adaptee = Adaptee()

    def request(self):
        # ...
        self.adaptee.adaptee_request()
        # ...

⑤ 创建测试类

def main():
    target = ConcreteTarget()
    target.request()

    adapter_target = Adapter()
    adapter_target.request()

if __name__ == "__main__":
    main()

7️⃣ 适配器模式实际应用

在Python标准库中的应用:各种文件格式转换器、数据库适配器等

设计模式

装饰者模式详解(Python版)| 设计模式教程

2025-9-6 15:37:50

设计模式

享元模式详解:Python实现与应用场景全面解析

2025-9-8 9:58:56

搜索