设计模式(三)工厂方法模式

该博客介绍了抽象工厂模式的应用,通过创建一个支付接口,允许子类决定实例化支付宝或微信支付。示例中展示了如何创建不同类型的支付工厂,如普通支付宝支付和花呗支付,并在主函数中调用相应工厂创建的支付对象进行支付操作。
摘要由CSDN通过智能技术生成

一、定义:

定义一个用于创建对象的接口(工厂接口),让子类决定实例化哪个产品类

二、角色:

1、抽象工厂角色
2、具体工厂角色
3、抽象产品角色
4、具体产品角色

三、示例:

from abc import ABCMeta, abstractmethod


class Payment(metaclass=ABCMeta):

    @abstractmethod
    def pay(self, money):
        pass


class Alipay(Payment):

    def __init__(self, use_huabei=False):
        self.use_huabei = use_huabei

    def pay(self, money):
        if not self.use_huabei:
            print('alipay Payment')
        else:
            print('huabei Payment')


class WechatPay(Payment):

    def pay(self, money):
        print('wechat Payment')


class PaymentFatcory(metaclass=ABCMeta):

    @abstractmethod
    def create_payment(self):
        pass


class AliPaymentFatcory(PaymentFatcory):

    def create_payment(self):
        return Alipay()


class WechatPaymentFatcory(PaymentFatcory):

    def create_payment(self):
        return WechatPay()


class AliHuabeiPaymentFatcory(AliPaymentFatcory):

    def create_payment(self):
        return Alipay(use_huabei=True)


if __name__ == '__main__':
  
    apay = AliHuabeiPaymentFatcory().create_payment()
    apay.pay(100)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值