设计模式1-简单工厂模式

from abc import ABCMeta, abstractclassmethod
# 接口
class Pay(metaclass=ABCMeta):
@abstractclassmethod
def pay(self, money):
pass
# 称Alipay实现了pay接口
class AliPay(Pay):
def __init__(self,huabei=False):
self.huabei = huabei
def pay(self, money):
if not self.huabei:
print("支付余额支付%d" % money)
else:
print("支付宝花呗支付%d" % money)
class WechatPay(Pay):
def pay(self, money):
pass
class CreatFactory:
def create_payment(self,p):
if p == 'yue':
return AliPay()
elif p == 'huabei':
return AliPay(huabei=True)
elif p =='wechat':
return WechatPay()
else:
raise TypeError('No such payment named %s' % p)
CreatFactory().create_payment('yue')

缺点:所有的对象的创建都是在一个地方

posted @   我是小菜鸡丫丫  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示