美文网首页
创建型模式之工厂模式

创建型模式之工厂模式

作者: nico_e06a | 来源:发表于2020-10-20 14:51 被阅读0次

简单工厂模式

内容:
不直接向客户端暴露对象创建的实现细节,而是通过一个工厂类来负责创建产品类的实例

角色:

  • 工厂角色(Creator)
  • 抽象产品角色(Product)
  • 具体产品角色(Concrete Product)
from abc import ABCMeta, abstractmethod

class Payment(metaclass=ABCMeta):
    # abstract class
    @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 self.use_huabei:
            print(f'花呗支付{money}元')
        else:
            print(f'支付宝支付{money}元')


class WechatPay(Payment):
    def pay(self, money):
        print(f'微信支付{money}元')


class PaymentFactory():
    def create_payment(self, method):
        if method == 'alipay':
            return AliPay()
        elif method == 'wechat':
            return WechatPay()
        elif method == 'huabei':
            return AliPay(use_huabei=True)
        else:
            raise TypeError(f'No such payment method {method}')


# client
if __name__ == '__main__':
    pf = PaymentFactory()
    p = pf.create_payment('huabei')
    p.pay('100')


优点:

  • 隐藏了对象创建的实现细节
  • 客户端不需要修改代码

缺点:

  • 违反了单一职责原则,将创建逻辑集中移到一个工厂类中
  • 当添加新的产品时,需要修改工厂类代码,违反了开闭原则

相关文章

  • 简单工厂模式

    Android进阶之设计模式 简单工厂模式 简单工厂模式(又叫作静态工厂方法模式), 其属于创建型设计模式,但并不...

  • java设计模式-工厂模式之简单工厂

    工厂模式属于创建型设计模式(用于创建对象),今天这里要讲的就是工厂三兄弟之简单工厂。工厂三兄弟:(简单工厂,工厂,...

  • 设计模式(1) 工厂方法模式

    创建型模式 简单工厂模式 工厂方法模式IOC与工厂方法模式的结合泛型工厂委托工厂 创建型模式 创建型模式可以隔离客...

  • 设计模式之活学活用的工厂模式

    设计模式之活学活用的工厂模式 工厂模式简介 工厂模式是我们日常开发工作中经常使用的设计模式,它属于创建型设计模式,...

  • Kotlin(八)kotlin设计模式-创建型

    创建型模式 - 工厂 Kotlin里面几种主流创建型设计模式:工厂方法模式,抽象工厂模式,构建者模式 8.1 伴生...

  • PHP常用设计模式

    # 创建型 单例模式 工厂模式 工厂抽象模式 原型模式 建造者模式 # 结构型 # 行为型 # 3.注册模式 # ...

  • 设计模式

    创建型:工厂模式(Factory Pattern)抽象工厂模式(Abstract Factory Pattern)...

  • Android 源码设计模式解析与实战 读书笔记 6 抽象工厂模

    创建型设计模式 —— 抽象工厂模式 1. 抽象工厂模式介绍 抽象工厂模式(Abstract Factory Pat...

  • 设计模式[3]-抽象工厂模式-Abstract Factory

    1.抽象工厂模式介绍 抽象工厂模式是创建型设计模式,可以创建一组对象。与工厂方法模式相比,抽象工厂模式中的具体工厂...

  • 设计模式小结

    设计模式 7 大原则 创建型 单例模式 原型模式 创建者模式(生成器模式) 简单工厂模式 工厂方法模式 抽象工厂模...

网友评论

      本文标题:创建型模式之工厂模式

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