[英]What is factory, singleton, observer design pattern? (OOP)
假设将来会有更多的比萨饼。 为了使我的代码更健壮并避免依赖 Pizza class 中的具体类,有什么更好的方法?
class Pizza:
def order(pizza_type):
pizza = none
if pizza_type == "cheese":
pizza = CheezePizza()
elif pizza_type == "pepperoni":
pizza = PepperoniPizza()
elif pizza_type == "veggie":
pizza = VeggiePizza()
pizza.prepare()
pizza.bake()
return pizza
是使用 1) 工厂方法设计模式,2) singleton 设计模式,还是 3) 观察者设计模式或 4) 保持原样?
我相信你在这里所做的被称为“外观模式”,恕我直言,它最适合这个目的 - 但是,我会稍微不同地实现它:
class Pizza:
pizza_types = {
"cheese": CheesePizza,
"pepperoni": PepperoniPizza,
"veggie": VeggiePizza
}
def order(pizza_type):
pizza_constructor = Pizza.pizza_types.get(pizza_type)
pizza = pizza_constructor() # instantiate the right type of pizza
pizza.prepare()
pizza.bake()
return pizza
您在这一种方法中将比萨饼的“创作”和“准备”结合在一起。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.