Python设计模式之适配器模式

适配器模式是一种结构型设计模式,它允许接口不兼容的对象协同工作。本文通过代码案例展示了在Python中如何使用适配器模式,将不同接口的引擎对象转换为统一接口,以满足汽车类的启动需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计模式

适配器模式(Adapter Pattern)是一种结构型设计模式,它允许接口不兼容的对象之间进行合作。在Python中,适配器模式通常用于将一个对象的接口转换为另一个对象的接口,以满足客户端的需求。
在这里插入图片描述

代码案例

以下是一个适配器模式的案例,我们有一些汽车,它们的引擎都有不同的接口,我们需要为它们提供一个统一的接口:

class Car:
    def __init__(self, engine):
        self.engine = engine

    def start(self):
        self.engine.start()

class GasolineEngine:
    def start(self):
        print("启动汽油发动机")

class ElectricEngine:
    def turn_on(self):
        print("启动电动发动机")

class ElectricEngineAdapter:
    def __init__(self, engine):
        self.engine = engine

    def start(self):
        self.engine.turn_on()

if __name__ == '__main__':
    car1 = Car(GasolineEngine())
    car1.start()

    car2 = Car(ElectricEngineAdapter(ElectricEngine()))
    car2.start()

在上面的代码中,Car 类需要一个可以启动引擎的对象,我们定义了两种不同类型的引擎 GasolineEngineElectricEngine,但是它们的接口不同。我们创建了一个 ElectricEngineAdapter 类,将 ElectricEngine 的接口转换为与 GasolineEngine 相同的接口。在实例化 Car 对象时,我们可以根据需要传递不同类型的引擎对象,即使接口不同,也能够成功启动引擎。

输出结果为:

启动汽油发动机
启动电动发动机

这就是适配器模式在Python中的简单应用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值