您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關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建造者模式指的是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。