设计模式(Python语言)----工厂方法模式(python编程实战:运用设计模式)

网友投稿 330 2022-08-23


设计模式(Python语言)----工厂方法模式(python编程实战:运用设计模式)

更多信息请参考 【设计模式】

工厂方法模式含义

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

工厂方法模式中的角色

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

工厂方法模式与简单工厂模式的区别

简单工厂模式只有一个工厂类,这一个工厂类可以生产出不同产品的实例工厂方法模式是每个产品都有一个工厂类,每个产品额实例都由各自独立的工厂类生产出来

优点

每个具体产品都对应一个具体工厂类,不需要修改工厂类代码隐藏了对象创建的细节

缺点

每增加一个具体产品类,就必须增加一个相应的具体工厂类代码量过多

工厂方法模式实例

代码实现如下:

import abcclass Payment(metaclass=abc.ABCMeta): @abc.abstractmethod def pay(self,money): passclass 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(metaclass=abc.ABCMeta): @abc.abstractmethod def create_payment(self): passclass AlipayFactory(PaymentFactory): def create_payment(self): return Alipay()class WechatFactory(PaymentFactory): def create_payment(self): return WeChatPay()if __name__=="__main__": pf=AlipayFactory() p=pf.create_payment() p.pay(300)

执行结果如下:

pay 300 in alipay way....


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:设计模式(Python语言)----面向对象设计SOLID原则(python solid原则)
下一篇:Spring事务的失效场景你知道多少
相关文章

 发表评论

暂时没有评论,来抢沙发吧~