更多信息请参考 【设计模式】
简单工厂模式含义
不直接向客户端暴露对象创建的实现细节,而是通过一个工厂类来负责创建产品类的实例
简单工厂模式中的角色
- 工厂角色(Creator)
- 抽象产品角色(Product)
- 具体产品角色(Concrete Product)
优点
- 隐藏了对象创建的细节
- 客户端不需要修改代码
缺点
- 违反了单一职责原则,将创建逻辑集中到一个工厂类里
- 当增加新产品时,需要修改工厂类代码,违反了开闭原则
简单工厂模式示例:
代码如下:
import abc
class Payment(metaclass=abc.ABCMeta):
@abc.abstractmethod
def pay(self,money):
pass
class Alipay(Payment):
def pay(self,money):
print(f"pay {money} in alipay way....")
class WeChatPay(Payment):
def pay(self,money):
print(f"pay {money} in wechat pay way...")
class PaymentFactory(object):
def create_payment(self,method):
if method=="alipay":
return Alipay()
elif method=="wechat":
return WeChatPay()
else:
raise TypeError(f"no such payment named {method}")
if __name__=="__main__":
pf=PaymentFactory()
p=pf.create_payment("alipay")
p.pay(100)
执行结果如下:
pay 100 in alipay way....
推荐阅读
设计模式(Python语言)----面向对象设计SOLID原则
设计模式(Python语言)----设计模式分类
设计模式(Python语言)----简单工厂模式
设计模式(Python语言)----工厂方法模式
设计模式(Python语言)----抽象工厂模式
设计模式(Python语言)----建造者模式
设计模式(Python语言)----单例模式
设计模式(Python语言)----适配器模式
设计模式(Python语言)----桥模式
设计模式(Python语言)----组合模式
设计模式(Python语言)----外观模式
设计模式(Python语言)----代理模式
设计模式(Python语言)----责任链模式
设计模式(Python语言)----观察者模式
设计模式(Python语言)----策略模式
设计模式(Python语言)----模板方法模式
版权声明:本文为redrose2100原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。