python设计模式 适配器

对象适配器
例如:你得知两个系统需要进行合并出一个新功能,两边的代码都不能更改,因为有些代码在其他地方正在应用,一改就全乱了,
在不更改两个原系统的基础上进行新的开发,明明是一类功能,但是两个系统的命名规则与抽象类都不一样就需要统一转换成一种方式进行调用。这时,就需要适配器。

# 类适配器模式使用示例:
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 ApplePay():
    def cost(self, money):
        print('苹果支付了%d' % money)


# 对象适配器
class PaymentAdapter(Payment):
    def __init__(self, payment):
        self.payment = payment

    # 只是套了一个函数而已 为了高层调用方便
    def pay(self, money):
        self.payment.cost(money)


# 对象适配器(需要适配的类)
p = PaymentAdapter(ApplePay())
# 即可使用原方法
p.pay(100)

p = PaymentAdapter(BankPay())
p.pay(100)
"""
苹果支付了100
银联支付了100
"""

你可能感兴趣的:(python,设计模式,设计模式)