您现在的位置是:课程教程文章
python建造者模式是什么
2023-12-14 20:28课程教程文章 人已围观
说明
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基础教程
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
课程教程:python建造者模式是什么下一篇:没有了