导语:
本文主要介绍了关于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()
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 哪些网站可以学习python01/06
- ♥ pycharm和python3输出表哪个好用?11/14
- ♥ 学完python能赚多少钱10/09
- ♥ 如何从python中的列表中删除重复项12/31
- ♥ 如何在记事本中编写python10/14
- ♥ 如何下载python的安装包10/28
内容反馈