首页 > 其他 > 详细

设计模式之工厂模式

时间:2018-04-30 21:56:16      阅读:303      评论:0      收藏:0      [点我收藏+]

1、在讲工厂模式之前先通过两种方法来实现一个接口

#接口实现的两种方法
class Payment:
    def pay(self,money):
        # 在子类调用pay方法时抛出异常,限定子类如果调用此方法则必须先实现此方法
        raise NotImplementedError
class Alipay(Payment):
    def pay(self,money):
        print(使用阿里支付了%s%money)

from abc import ABCMeta,abstractmethod
class Payment(metaclass=ABCMeta):
    @abstractmethod
    def pay(self,money):
        # 通过系统提供的方法来实现如果子类调用此方法,则必须先是实现此方法才能调用
        pass
class Alipay(Payment):
    def pay(self,money):
        print(使用阿里支付了%s%money)

2、工厂模式的实现

from abc import abstractmethod,ABCMeta
class Payment(metaclass=ABCMeta):
  #接口类,提供支付方法 @abstractmethod
def pay(self,money): raise NotImplementedError class Alipayment(Payment):
  #实现接口类,必须实现接口的pay方法
def pay(self,money): print(阿里支付了%s元%money) class Applepayment(Payment): def pay(self,money): print(苹果支付了%s元%money) class Wechatpaymet(Payment): def pay(self,money): print(微信支付了%s元%money) class Factory: #工厂类,隐藏了对象的创建细节 @classmethod def create_payment(self,args): if args == ali: return Alipayment() elif args == apple: return Applepayment() elif args == wechat: return Wechatpaymet() else: raise NameError(args) payment = Factory.create_payment(ali) payment.pay(50)

 

设计模式之工厂模式

原文:https://www.cnblogs.com/aadmina/p/8974652.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!