1.定义
将一个类的接口转换成客户希望的另外一个接口,适配器使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
实现适配器的两种方式,类适配器使用多继承,对象适配器使用组合
。组合就是一个类中放入另一类的对象。
2.分类
(1)类适配器模式
from abc import ABCMeta, abstractmethod
# 目标接口
class Payment(object, metaclass=ABCMeta):
@abstractmethod
def pay(self, money):
pass
class Alipay(Payment):
def pay(self, money):
print('支付了%d' % money)
# 待适配的类
class BankPay():
def cost(self, money):
print('银联支付了%d' % money)
# 类适配器 【关键代码】
class PaymentAdapter(Payment, BankPay):
"""
把不兼容cost转换成pay
"""
def pay(self, money):
self.cost(money)
p = PaymentAdapter()
p.pay(100)
类适配器继承了抽象类和待适配的类,通过实现抽象类中的具体方法,调用待适配类的方法,来保持一致性,高层代码的调用方法不变。
对单个的待适配类进行适配。
角色:
抽象目标接口<