ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

headfirsh设计模式——抽象工厂模式例子

2022-02-02 16:01:45  阅读:134  来源: 互联网

标签:__ self 抽象 pass print 设计模式 headfirsh def Pizza


"""
抽象工厂模式
"""
class PizzaIngredientFactory(object):
	def __init__(self):
		pass

	def createDough(self):
		pass

	def createSauce(self):
		pass

	def createCheese(self):
		pass

	def createVeggies(self):
		pass
	
	def createPepperoni(self):
		pass

	def createClam(self):
		pass

class NYPizzaIngredientFactory(PizzaIngredientFactory):
	def __init__(self):
		pass

	def createDough(self):
		print("制作Pizza生面团")

	def createSauce(self):
		print("制作番茄酱")		

	def createCheese(self):
		print("制作芝士")		

	def createVeggies(self):
		print("准备蒜头,洋葱,蘑菇,红辣椒")
	
	def createPepperoni(self):
		print("制作香肠")

	def createClam(self):
		print("制作新鲜蛤蜊")		

class Pizza(object):
	def __init__(self):
		self.name = ""
		self.sauce = None
		self.veggies = []
		self.cheese = None
		self.popperoni = None
		self.clam = None

	def prepare(self):
		pass

	def bake(self):
		print("烘烤披萨")

	def cut(self):
		print("把披萨切开")

	def box(self):
		print("把披萨放盒里")

	def setName(self, sName):
		self.name = sName

	def getName(self):
		return self.name

	def toString(self):
		pass

class CheesePizza(Pizza):
	def __init__(self, IngredientFactory):
		self.Factory = IngredientFactory
		self.prepare()

	def prepare(self):
		dough = self.Factory.createDough()
		sauce = self.Factory.createSauce()
		cheese = self.Factory.createCheese()

class ClamPizza(Pizza):
	def __init__(self, IngredientFactory):
		self.Factory = IngredientFactory
		self.prepare()

	def prepare(self):
		dough = self.Factory.createDough()
		sauce = self.Factory.createSauce()
		cheese = self.Factory.createCheese()
		clam = self.Factory.createClam() 

class PizzaStore(object):
	def __init__(self):
		pass

	def orderPizza(self, type):
		pizza = createPizza(type)
		pizza.prepare()
		pizza.bake()
		pizza.cut()
		pizza.box()
	
	def createPizza(self, type):
		return Pizza()

class NYPizzaStore(PizzaStore):
	def __init__(self):
		pass

	def createPizza(self, type):
		pizza = None
		ingredientFactory = NYPizzaIngredientFactory()
		if type == "cheese":
			pizza = CheesePizza(ingredientFactory)
			pizza.setName("芝士Pizza")
		elif type == "clam":
			pizza = ClamPizza(ingredientFactory)
			pizza.setName("蛤蜊Pizza")

		return pizza

pStore = NYPizzaStore()
pizza1 = pStore.createPizza("cheese")
print('Pizza是' + pizza1.getName())
print('------------------------------------')
pizza2 = pStore.createPizza("clam")
print('Pizza2是' + pizza2.getName())

"""
制作Pizza生面团
制作番茄酱
制作芝士
Pizza是芝士Pizza
------------------------------------
制作Pizza生面团
制作番茄酱
制作芝士
制作新鲜蛤蜊
Pizza2是蛤蜊Pizza
"""

标签:__,self,抽象,pass,print,设计模式,headfirsh,def,Pizza
来源: https://blog.csdn.net/Lbo_tao/article/details/122769930

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有