1.适配器模式
1.1 简单版:类适配器
from abc import ABC,abstractmethod
class Payment:
@abstractmethod
def pay(self):
pass
class AliPay(Payment):
def pay(self):
print("pay by alimama...")
class BankPay:
def cost(slef):
print("pay by bank...")
class NewBankPay(Payment,BankPay):
def pay(self):
self.cost()
bank_pay = NewBankPay()
bank_pay.pay()
- 注意使用多继承的原因是:既可以使用Payment的抽象方法,又可以使用父类的cost方法
1.2 对象适配器
解决多个适配
from abc import ABC,abstractmethod
class Payment:
@abstractmethod
def pay(self):
pass
class AliPay(Payment):
def pay(self):
print("pay by alimama...")
class GongShangBankPay:
def cost(slef):
print("pay by GongShang...")
class ZhongGuoBankPay:
def cost(slef):
print("pay by ZhongGuo...")
class PaymentAdapter(Payment):
def __init__(self,payment:Payment) -> None:
self._payment = payment
def pay(self):
self._payment.cost()
g_bank_pay = PaymentAdapter(GongShangBankPay())
z_bank_pay = PaymentAdapter(ZhongGuoBankPay())
g_bank_pay.pay()
z_bank_pay.pay()
网友评论