码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之工厂模式

时间:2018-04-30 22:07:36      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:mon   系统   style   ISE   error   not   abc   实现   支付   

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)

 

设计模式之工厂模式

标签:mon   系统   style   ISE   error   not   abc   实现   支付   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!