python实现适配器设计模式

适配器模式(Adapter Pattern)将某个接口转换成客户端希望的另一个接口表示,主要目的是兼容性,让原本因接口不匹配而不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)

工作原理
适配器模式:将一个类的接口转换成另一种接口,让原本接口不兼容的类可以兼容
从用户的角度看不到被适配者,是解耦的
用户调用适配器转化出来的目标接口方法,适配器再调用被适配者的相关接口方法
用户收到反馈结果,感觉只是和目标接口交互

python实现


class Charge(object): #充电基类,默认使用5V充电

    def charge5v(self): 
        pass

class Charge5v(Charge):

    def charge5v(self):
        print("使用5V充电")


class Charge220v(object): #现在要使用220v进行充电
    def charge220v(self):
        print("使用220V充电")


class Adapter(Charge):  #进行适配
    charge220 = None
    def __init__(self, charge220):
        self.charge220 = charge220
    def charge5v(self):
        self.charge220.charge220v()

charge = Charge5v()
charge.charge5v()

charge2 = Charge220v()
adapter = Adapter(charge2)
adapter.charge5v()

打印结果:

使用五福充电器5V充电
使用220V充电器充电

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
适配器模式是一种设计模式,用于将一个类的接口转换成客户端所期望的另一个接口。在Python中,可以使用多种方法实现适配器模式。一种常见的方法是使用继承或组合,另一种方法是利用类的内部字典来实现适配器模式。 在Python中,可以使用继承或组合来实现适配器模式。通过继承,可以创建一个适配器类,该类继承自被适配的类,并重写被适配类的方法以符合客户端的需求。通过组合,可以创建一个适配器类,该类包含一个被适配类的实例,然后通过调用被适配类的方法来实现适配。 另外,Python还提供了一种替代方案,使用类的内部字典来实现适配器模式。通过创建一个适配器类,并在该类的字典中设置被适配类的方法,从而使客户端可以通过调用适配器类的方法来实现适配。 例如,可以使用适配器模式将不兼容的对象适配到一个统一的接口中。在Python中,可以创建一个通用的适配器类,该类接受一个被适配的对象和一个字典,字典中的键是客户端要调用的方法,值是应该被调用的方法。通过适配器类的实例化和调用适配器对象的方法,客户端代码可以始终调用已知的execute()方法,而无需关心被使用的类之间的任何接口差异。 总结来说,Python提供了多种方法来实现适配器模式,包括继承、组合和利用类的内部字典。通过适配器模式,可以将不兼容的对象适配到一个统一的接口中,使客户端代码更加简洁和灵活。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python 实现 适配器模式](https://blog.csdn.net/hbu_pig/article/details/80509629)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值