当前位置: 首页 > 图灵资讯 > 行业资讯> python建造者模式是什么

python建造者模式是什么

来源:图灵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电脑。