说明
成都创新互联是一家专注网站建设、网络营销策划、微信小程序定制开发、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立十年以来,已经为上1000+成都软装设计各业的企业公司提供互联网服务。现在,服务的上1000+客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。
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教程:python建造者模式是什么
转载源于:http://www.shufengxianlan.com/qtweb/news26/292826.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联