91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python建造者模式指的是什么

發布時間:2021-06-25 09:14:37 來源:億速云 閱讀:163 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關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建造者模式指的是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玛曲县| 凤山县| 贡觉县| 习水县| 余姚市| 苍山县| 格尔木市| 昔阳县| 新蔡县| 汕尾市| 深圳市| 乐业县| 鱼台县| 潢川县| 宜阳县| 林甸县| 库尔勒市| 比如县| 长宁县| 龙江县| 房产| 定陶县| 都匀市| 云霄县| 英德市| 台江县| 油尖旺区| 安达市| 鄂州市| 牟定县| 盐池县| 连山| 铁岭县| 滨海县| 万载县| 谷城县| 无棣县| 呼玛县| 江源县| 二手房| 师宗县|