python设计模式 工厂方法模式
时间:2022-10-22 03:30:01
需要添加新的程序扩展:产品类别 与 工厂类
添加新需求不需要修改旧代码
from abc import ABCMeta, abstractmethod # 产品:产品1 产品2 产品3 # 工厂:工厂1 工厂2 工厂3 # 抽象一类产品 # 工厂抽象一类 # 每种产品都是一类 class A(metaclass=ABCMeta): @abstractmethod def print_(self, money): pass class A1(A): def print_(self, money): print("A1产品", money) class A2(A): def print_(self, money): print("A2产品", money) class A3(A): def print_(self, money): print("A3产品", money) # 工厂接口创建产品 class B(metaclass=ABCMeta): @abstractmethod def print_str(self): pass # 工厂类1 class B1(B): def print_str(self): return A1() # 工厂类2 class B2(B): def print_str(self):
return A2()
# 工厂类3
class B3(B):
def print_str(self):
return A3()
# 工厂1 工厂通用方法
bfp = B1().print_str()
# 产品方法
bfp.print_(100)