将对象的创建和对象的使用分离开
具体类:具体的物品对象
抽象类:将具体类公共的代码进行抽象和提取后封装在一个类中
工厂类:提供创建不同物品的方法,通过传入的参数不同而创建不同的物品
原文链接:史上最全设计模式导学目录(完整版)_LoveLion的博客-CSDN博客_史上最全设计模式lovelion
场景描述:
图表库可以为应用系统提供各种不同外观的图表,例如柱状图、饼状图、折线图
创建抽象图表类:
from abc import ABC,abstractmethod
# 定义一个抽象图表类
class Chart(ABC):
# 定义一个抽象方法,该方法必须被其子类实现
@abstractmethod
def display(self):
pass
创建工厂类:
class ChartFactory():
@staticmethod
def factoryMethod(type):
if type == 'bar':
return BarChart()
elif type == 'line':
return LineChart()
创建具体图表类:
class LineChart(Chart):
def display(self):
print('这是折线图...')
class BarChart(Chart):
def display(self):
print('这是条形图...')
调用程序:
bar = ChartFactory.factoryMethod('bar')
line = ChartFactory.factoryMethod('line')
bar.display()
line.display()