设计模式(Python语言)----简单工厂模式
  TEZNKK3IfmPf 2023年11月14日 18 0

简单工厂模式含义

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

简单工厂模式中的角色

  • 工厂角色(Creator)
  • 抽象产品角色(Product)
  • 具体产品角色(Concrete Product)

优点

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

缺点

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

简单工厂模式示例:

代码如下:

import abc

class Payment(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def pay(self,money):
        pass

class Alipay(Payment):
    def pay(self,money):
        print(f"pay {
       
         money} in alipay way....")

class WeChatPay(Payment):
    def pay(self,money):
        print(f"pay {
       
         money} in wechat pay way...")

class PaymentFactory(object):
    def create_payment(self,method):
        if method=="alipay":
            return Alipay()
        elif method=="wechat":
            return WeChatPay()
        else:
            raise TypeError(f"no such payment named {
       
         method}")

if __name__=="__main__":
    pf=PaymentFactory()
    p=pf.create_payment("alipay")
    p.pay(100)

执行结果如下:

pay 100 in alipay way....

推荐阅读

设计模式(Python语言)----面向对象设计SOLID原则

设计模式(Python语言)----设计模式分类

设计模式(Python语言)----简单工厂模式

设计模式(Python语言)----工厂方法模式

设计模式(Python语言)----抽象工厂模式

设计模式(Python语言)----建造者模式

设计模式(Python语言)----单例模式

设计模式(Python语言)----适配器模式

设计模式(Python语言)----桥模式

设计模式(Python语言)----组合模式

设计模式(Python语言)----外观模式

设计模式(Python语言)----代理模式

设计模式(Python语言)----责任链模式

设计模式(Python语言)----观察者模式

设计模式(Python语言)----策略模式

设计模式(Python语言)----模板方法模式

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   39   0   0 python开发语言
  TEZNKK3IfmPf   2024年05月31日   28   0   0 python
  TEZNKK3IfmPf   2024年05月31日   35   0   0 excelpython
  TEZNKK3IfmPf   2024年05月31日   30   0   0 python
TEZNKK3IfmPf