首页 / 设计模式 / 工厂模式-设计模式-第4篇
工厂模式-设计模式-第4篇
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了工厂模式-设计模式-第4篇,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1967字,纯文字阅读大概需要3分钟。
内容图文
![工厂模式-设计模式-第4篇](/upload/InfoBanner/zyjiaocheng/997/e016d458b81a4edaa601e40acfdba900.jpg)
1. 工厂模式
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 self.use_huabei:
print("使用花呗支付 %d " % money)
else:
print("Ali payed %d" % money)
class WechatPay(Payment):
def pay(self, money):
print("Wechat pay %d" % money)
class PaymentFactory(metaclass=ABCMeta):
@abstractmethod
def create_payment(self):
pass
class AliPayFactory(PaymentFactory):
def create_payment(self):
return Alipay()
class WechatPayFactory(PaymentFactory):
def create_payment(self):
return WechatPay()
class HuabeiPayFactory(PaymentFactory):
def create_payment(self):
return Alipay(use_huabei=True)
if __name__ == '__main__':
pf = HuabeiPayFactory()
p = pf.create_payment()
p.pay(100)
假设需要增加一种支付方式 银联支付
则需要 增加两个类 BankPay BankPayFactory
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 self.use_huabei:
print("使用花呗支付 %d " % money)
else:
print("Ali payed %d" % money)
class WechatPay(Payment):
def pay(self, money):
print("Wechat pay %d" % money)
class BankPay(Payment):
def pay(self, money):
print("银联支付 pay %d" % money)
class PaymentFactory(metaclass=ABCMeta):
@abstractmethod
def create_payment(self):
pass
class AliPayFactory(PaymentFactory):
def create_payment(self):
return Alipay()
class WechatPayFactory(PaymentFactory):
def create_payment(self):
return WechatPay()
class HuabeiPayFactory(PaymentFactory):
def create_payment(self):
return Alipay(use_huabei=True)
class BankPayFactory(PaymentFactory):
def create_payment(self):
return BankPay()
if __name__ == '__main__':
pf = BankPayFactory()
p = pf.create_payment()
p.pay(100)
对于与每个 具体的产品类 (WechatPay AliPay BankPay) 必须增加 相应的 工厂类 (WechatPayFactory AliPayFactory BankPayFactory)
内容总结
以上是互联网集市为您收集整理的工厂模式-设计模式-第4篇全部内容,希望文章能够帮你解决工厂模式-设计模式-第4篇所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。