设计模式 - 工厂模式
概述
思想:使用工厂方法代替手动实例化对象;
目的:
简化对象的创建过程;
将创建对象的代码与使用对象的代码解耦,从而降低维护的复杂度(对比多态);
Python 示例
使用工厂方法还是抽象工厂?
答案是:通常从简单的工厂方法开始。如果发现应用程序需要许多工厂方法,且将这些方法组合起来创建一系列对象是有意义的,那么就使用抽象工厂。
工厂方法
class Demo:
pass
class ADemo(Demo):
def __init__(self, *args, **kwargs):
pass
class BDemo(Demo):
def __init__(self, *args, **kwargs):
pass
def get_demo(name, *args, **kwargs) -> Demo:
""" factory method """
if name == 'A':
return ADemo(*args, **kwargs)
elif name == 'B':
return BDemo(*args, **kwargs)
else:
raise ValueError(...)
抽象工厂
抽象工厂实际上就是一系列工厂方法的集合,用于创建一系列相关的对象;
class Factory:
def make_a(self) -> A:
pass
def make_b(self) -> B:
pass
Last updated