from abc import abstractclassmethod,ABCMeta
class Payment(metaclass=ABCMeta):
@abstractclassmethod
def pay(self,money):
raise NotImplementedError
class Alipay(Payment):
def __init__(self,enable_yuebao=False):
self.enable_yuebao = enable_yuebao
def pay(self,money):
if self.enable_yuebao:
print('余额宝支付了%s元'%money)
else:
print('支付宝支付了%s元'%money)
class ApplePay(Payment):
def pay(self,money):
print('苹果支付了%s元'%money)
class PaymentFactory: #工厂类 封装了对象创建的细节
def create_payment(self,method):
if method == 'alipay':
return Alipay() ##创建Alipay对象
elif method == 'applepay':
return ApplePay()
elif method == 'yuebao':
return Alipay(True)
else:
raise NameError(method)
factory = PaymentFactory()
payment = factory.create_payment('yuebao') #创建Alipay对象
payment.pay(123)
工厂模式
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 先开个小头,明天写出来,不逼着自己是不会干活的。 题外话: 首先,设计模式是什么,为什么要用设计模式,设计模式用来...
- 说明:在我理解中,这里所谓的抽象,其实就是制定某一个接口规范。具体体现在代码里,就是设置一个基类,基类遵守某一套接...
- 哲学上说“是什么,为什么,怎么用”是认识问题的逻辑思维过程. 本文将以厂长工厂造车为例子讲述这三种设计模式。 简单...
- 一、引子 话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)),还雇了司...