工厂函数,工厂类对具体的生成环节进行了封装,这样有利于代码的后续扩展,即把功能划分的更具体,4S店只负责销售,汽车厂只负责制造
代码如下:
class CarFactory(object):
"""定义一个生产汽车的工厂,让其根据具体的订单生产车"""
def createCar(self, typeName):
if typeName == "伊兰特":
car = YilanteCar()
elif typeName == "索纳塔":
car = SuonataCar()
return car
class CarStore(object):
"""定义一个销售北京现代车的4S店类"""
def __init__(self):
# 设置4S店的指定生产汽车的工厂
self.carFactory = CarFactory()
def order(self, typeName):
# 让工厂根据类型,生产一辆汽车
car = self.carFactory.createCar(typeName)
return car
咋一看来,好像只是把生产环节重新创建了一个类,这确实比较像是一种编程习惯,此种解决方式被称作简单工厂模式