适配器模式

适配器模式(Adapter Pattern)是一种结构型设计模式,它将一个类的接口转换成客户端所期望的另一种接口,从而让原本接口不兼容的类可以一起工作。

适配器模式通常用于以下场景:

  1. 系统需要使用一个已经存在的类,而这个类的接口不符合系统的需求。

  1. 对象适配器模式中,想要使用一些已经存在的子类,但是不可能对每一个子类都进行修改以适应新的接口,适配器模式可以通过适配器类的编写,将所有的子类都适配到新的接口上。

  1. 需要在多个类之间共享一些公共功能,但是由于接口不兼容,需要进行适配。

例如,如果一个系统需要使用一个外部API,但是这个API的接口与系统的需要不一致,就可以使用适配器模式将API的接口适配到系统需要的接口上。又比如,如果一个系统需要在不同的数据库之间切换,但是每个数据库都有自己独特的API,这个系统可以通过一个适配器类将所有的数据库API适配到一个通用的API上,这样就可以避免修改系统的核心代码。

下面是一个适配器模式的示例代码:

class Target:
    """
    客户端所期望的接口
    """
    def request(self):
        return"Target: 请求已发送"

class Adaptee:
    """
    需要适配的接口
    """
    def specific_request(self):
        return"Adaptee: 请求已发送"

class Adapter(Target):
    """
    适配器,将Adaptee转换成Target接口
    """def __init__(self, adaptee: Adaptee):
        self.adaptee = adaptee

    def request(self):
        return f"Adapter: {self.adaptee.specific_request()}"

def client_code(target: Target) -> None:
    """
    客户端代码,接受Target接口的参数
    """
    print(target.request())

if __name__ == "__main__":
    adaptee = Adaptee()
    adapter = Adapter(adaptee)
    client_code(adapter)

上面的代码中,我们有一个客户端所期望的接口 Target,和一个需要适配的接口 AdapteeAdapter 是适配器类,将 Adaptee 类转换成 Target 类。在适配器中,我们使用了 adaptee 参数,这个参数是从 Adaptee 对象传递进来的。最后,我们使用 client_code 函数来测试适配器是否能够将 Adaptee 转换成了 Target 接口。

运行这段代码,将会输出如下结果:

Adapter: Adaptee: 请求已发送

可以看到,Adapter 类将 Adaptee 对象的 specific_request 方法转换成了 Target 类的 request 方法,从而实现了接口的适配。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值