newbie_evolve's Blog

Happy coding
python设计模式之“简单工厂模式”
Python设计模式之“单例模式”

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信息
    

 


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter