HeadFirst 设计模式--简单工厂
简单工厂更像一种编程习惯,而不是设计模式。
三种简单工厂、工厂模式、抽象工厂模式
简单工厂
简单工厂更像一种编程习惯,而不是设计模式。
简单工厂通过传入不同的参数,来生成不同的类。
class CheesePizza:
pass
class ClamPizza:
pass
class SimpleFactory:
def create_pizza(self, pizza_type):
res = None
if pizza_type == "cheese":
res = CheesePizza()
if pizza_type == "clam":
res = ClamPizza()
return res
class PizzaStore:
pizza_factory = None
def __init__(self, pizza_factory):
self.pizza_factory = pizza_factory
def order_pizza(self, pizza_type):
pizza = self.pizza_factory.create_pizza(pizza_type)
pizza.prepare()
pizza.bake()
pizza.cut()
pizza.box()
return pizza
tip:
可以将工厂类中生成对象的方法写成静态方法,这样的写法又称为静态工厂
好处:
当需要改动生成的对象时,在工厂类中改动即可,不需要改动其他逻辑。
可以方便其他类使用工厂类生成的对象(提高的代码的可复用性)
License:
CC BY 4.0