python建造者模式是什么

说明

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.88


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())+"千克"+"\n限时促销价:"+
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基础教程

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。