设计模式三刷(结构型)

2023-02-12  本文已影响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()
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.桥模式

上一篇 下一篇

猜你喜欢

热点阅读