设计模式之工厂模式

Posted aadmina

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之工厂模式相关的知识,希望对你有一定的参考价值。

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)

 

以上是关于设计模式之工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---工厂模式之简单工厂

设计模式之简单工厂模式

设计模式之简单工厂模式

Java代码实现设计模式之工厂模式

设计模式之简单工厂模式

设计模式之工厂模式