这篇文章给大家分享的是有关python建造者模式指的是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
说明
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建造者模式指的是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://www.py.cn/jishu/jichu/31203.html