我根据设计模式书编写了以下工厂模式:
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