工厂模式的好处?

时间:2014-11-12 21:15:24

标签: python design-patterns factory-pattern

我根据设计模式书编写了以下工厂模式:

class Pizza():
    def __init__(self):
        self. cost=0

    @property
    def cost(self):
        return self.cost

class PizzaFactory():

   class Clamp(Pizza):
    def __init__(self):
        self.cost=10

   class Vegan(Pizza):
     def __init__(self):
        self.preci0=40

   class NY(Pizza):
     def __init__(self):
         self.cost=30

   @staticmethod
   def makePizza(type):
        if type=="Clamp":
            return Clamp()
        elif type=="Vegan":
            return Vegan()
        elif type=="NY":
            return NY()

def main():
    PizzaFactory=PizzaFactory()
    print PizzaFactory.makePizza("Clamp").cost

if __name__=="__main__":
    main()

我明白了集中构造函数的意义,并且在Java中用于不使用新单词,但我不确定它是否在Python中直接使用。

我发现几乎所有的例子都是一样的,在一个Factory类中放置了一些简单的对象创建,并说它会更容易扩展我的类,但我没有看到一个具体的例子。

有人能给我一个例子,可以证明这种工厂模式对我制作的程序化例子有用吗?

由于

PD。顺便说一下,我发现Factory Pattern是用Python构建的,所以它给人的印象是Python缺少一些模式。资料来源:http://cdn.oreillystatic.com/en/assets/1/event/12/The%20Lack%20of%20Design%20Patterns%20in%20Python%20Presentation.pdf

1 个答案:

答案 0 :(得分:0)

你的例子非常简单,可能没有真正的"真实的"用例。

Here是我写的工厂函数。它根据字符串标识符确定要使用的类。这些标识符在运行时从看起来like this的JSON动态加载。工厂的动态特性使这些类更具可扩展性,因为任何人都可以挂钩这个工厂并向系统添加更多类。