Python设计模式之“工厂方法模式”
newbie_evolve
posted @ 2013年8月16日 09:54
in python之年
, 1020 阅读
工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类时哪一个。工厂方法让类把实例化推迟到子类。
工厂方法模式解决了简单工厂模式的问题:简单工厂模式违背开闭原则。
class Pizza():#pizza抽象类
def GetPizza(self):
pass
class VeggiePizza(Pizza):#素食pizza具体类
def GetPizza(self):
print "gave me a VeggiePizza"
class CheesePizza(Pizza):#奶酪pizza具体类
def GetPizza(self):
print "gave me a CheesePizza"
class PizzaFactory():#抽象pizza工厂
def CreatPizza(self):
pass
class VeggiePizzaFactory(PizzaFactory):#具体素食pizza工厂
def CreatePizza(self):
tem = VeggiePizza()
return tem
class CheesePizzaFactory(PizzaFactory):#具体奶酪pizza工厂
def CreatePizza(self):
tem = CheesePizza()
return tem
if __name__ == "__main__":
pizzafac = VeggiePizzaFactory() #要向素食pizza工厂订购pizza
pizza = pizzafac.CreatePizza() #素食pizza工厂生产pizza
pizza.GetPizza() #获得pizza信息