python建造者模式是什么
说明
1、属于创建型模式,提供了创建对象的最佳方式。
2、该模式使用多个简单的对象逐步构建复杂的对象,Builder类逐步构建最终对象,该Builder类独立于其他对象。
由各部分的子对象用一定的算法构成,因为需求的变化,该复杂对象的各部分经常面临剧烈的变化,但结合起来的算法相对稳定。
实例
class Item:# Item类提供水果的基础信息的抽象类
def set_name(self):
pass
def packing(self):
pass
def set_price(self):
pass
def set_weight(self):
pass
def promotion_price(self):
pass
class Pack:
# Pack管理水果的包装方式
def pack(self):
pass
class box_pack(Pack):
# box-pack采用盒装方式
def pack(self):
return "盒装"
class bag_pack(Pack):
# bag-pack采用袋装方式
def pack(self):
return "袋装"
class Grape(Item):
# 葡萄类
def packing(self):
wrap = box_pack()
return wrap
def set_price(self):
grape_price = 18.0
return grape_price
def set_name(self):
grape_name = "葡萄"
return grape_name
def set_weight(self):
grape_weight = 2.5
return grape_weight
def promotion_price(self):
return 28.99
class Hami_Melon(Item):
# 哈密瓜类
def packing(self):
wrap = bag_pack()
return wrap
def set_price(self):
hami_melon_price = 22.0
return hami_melon_price
def set_name(self):
hami_melon_name = "哈密瓜"
return hami_melon_name
def set_weight(self):
hami_melon_weight = 3.2
return hami_melon_weight
def promotion_price(self):
return 39.99
class Orange(Item):
# 橘子大类
def packing(self):
wrap = bag_pack()
return wrap
def set_price(self):
pass
class Citrus(Orange):
# 柑橘类
def set_price(self):
citrus_price = 12.5
return citrus_price
def set_name(self):
citrus_name = "柑橘"
return citrus_name
def set_weight(self):
citrus_weight = 2.6
return citrus_weight
def promotion_price(self):
return 18.88
class Tangerine(Orange):
# 冰橘类
def set_price(self):
tangerine_price = 13.0
return tangerine_price
def set_name(self):
tangerine_name = "冰橘"
return tangerine_name
def set_weight(self):
citrus_weight = 3.3
return citrus_weight
def promotion_price(self):
return 26.66
class Menu:
def __init__(self):
self.items = []
def AddItem(self, item):
# 添加item,即添加参与促销活动的水果
self.items.append(item)
def ShowItems(self):
# ShowItem,展示参与促销活动的水果清单
print("-*-" * 5 + "限时促销清单" + "-*-" * 10)
for item in self.items:
print("◎Item:" + item.set_name() + " 包装:" + item.packing().pack() + " 原价:" + str(
item.set_price()) + "元/千克" + " 重量:" + str(item.set_weight()) + "千克" + "\n 限时促销价:" +
str(item.promotion_price()) + "元!!!")
print("-*-" * 5 + "限时促销清单" + "-*-" * 10)
class MenuBuilder:
@staticmethod
def PrepareMenu():
# 构造清单,过程如下:
menu = Menu()
menu.AddItem(Grape())
menu.AddItem(Citrus())
menu.AddItem(Tangerine())
menu.AddItem(Hami_Melon())
return menu
if __name__ == '__main__':
# 新建一个建造者
menu_builder = MenuBuilder()
# 建造促销活动的水果清单
menu_object = menu_builder.PrepareMenu()
# 展示参与促销活动的水果信息
menu_object.ShowItems()
以上就是python建造者模式的介绍,希望对大家有所帮助。更多Python学习指路:python基础教程
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
以上是 python建造者模式是什么 的全部内容, 来源链接: utcz.com/z/545216.html