美文网首页
设计模式三刷(结构型)

设计模式三刷(结构型)

作者: 山猪打不过家猪 | 来源:发表于2023-02-12 05:01 被阅读0次

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()

2.桥模式

相关文章

网友评论

      本文标题:设计模式三刷(结构型)

      本文链接:https://www.haomeiwen.com/subject/eptrkdtx.html