python建造者模式是什么
发布时间:2024-07-07 19:32:42

说明
1、属于创建模式,为创建对象提供了最佳方式。
2、该模式使用多个简单的对象逐渐构建复杂的对象,builder类逐渐构建最终对象,builder类独立于其他对象。
由于需求的变化,复杂对象的各个部分往往面临着剧烈的变化,但结合起来的算法相对稳定,因为每个部分的子对象都是由某个算法组成的。
实例
classItem:
#提供水果基本信息的Item类抽象类
defset_name(self):
pass
defpacking(self):
pass
defset_price(self):
pass
defset_weight(self):
pass
defpromotion_price(self):
pass
classPack:
#Pack管理水果的包装方法
defpack(self):
pass
classbox_pack(Pack):
#box-pack采用盒装方式
defpack(self):
return"盒装"
classbag_pack(Pack):
#bag-pack采用袋装
defpack(self):
return"袋装"
classGrape(Item):
#葡萄类
defpacking(self):
wrap=box_pack()
returnwrap
defset_price(self):
grape_price=18.0
returngrape_price
defset_name(self):
grape_name="葡萄"
returngrape_name
defset_weight(self):
grape_weight=2.5
returngrape_weight
defpromotion_price(self):
return28.99
classHami_Melon(Item):
#哈密瓜类
defpacking(self):
wrap=bag_pack()
returnwrap
defset_price(self):
hami_melon_price=22.0
returnhami_melon_price
defset_name(self):
hami_melon_name="哈密瓜"
returnhami_melon_name
defset_weight(self):
hami_melon_weight=3.2
returnhami_melon_weight
defpromotion_price(self):
return39.99
classOrange(Item):
#橘子大类
defpacking(self):
wrap=bag_pack()
returnwrap
defset_price(self):
pass
classCitrus(Orange):
#柑橘类
defset_price(self):
citrus_price=12.5
returncitrus_price
defset_name(self):
citrus_name="柑橘"
returncitrus_name
defset_weight(self):
citrus_weight=2.6
returncitrus_weight
defpromotion_price(self):
return18.888
classTangerine(Orange):
#冰橘类
defset_price(self):
tangerine_price=13.0
returntangerine_price
defset_name(self):
tangerine_name="冰橘"
returntangerine_name
defset_weight(self):
citrus_weight=3.3
returncitrus_weight
defpromotion_price(self):
return26.66
classMenu:
def__init__(self):
self.items=[]
defAddItem(self,item):
#添加item,即添加参与促销活动的水果
self.items.append(item)
defShowItems(self):
#ShowItem,展示参与促销活动的水果清单
print("-*-"*5+"限时促销清单"+"-*-"*10)
foriteminself.items:
print("◎Item:"+item.set_name()+"包装:"+item.packing().pack()+"原价:"+str(
item.set_price())+"元/千克"+"重量:"+str(item.set_weight())+"千克"+"限时促销价格:"+
str(item.promotion_price())+"元!!!!")
print("-*-"*5+"限时促销清单"+"-*-"*10)
classMenuBuilder:
@staticmethod
defPrepareMenu():
#构造清单,过程如下:
menu=Menu()
menu.AddItem(Grape())
menu.AddItem(Citrus())
menu.AddItem(Tangerine())
menu.AddItem(Hami_Melon())
returnmenu
if__name__='__main__':
#建造新的建造者
menu_builder=MenuBuilder()
#建设促销活动的水果清单
menu_object=menu_builder.PrepareMenu()
#展示参与促销活动的水果信息
menu_object.ShowItems()以上是python建造者模式的介绍,希望对大家有所帮助。更多Python学习指导:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。
