python建造者模式指的是什么

這篇文章給大家分享的是有關(guān)python建造者模式指的是什么的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

成都創(chuàng)新互聯(lián)是專業(yè)的桐廬網(wǎng)站建設(shè)公司,桐廬接單;提供成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行桐廬網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

說明

1、屬于創(chuàng)建型模式,提供了創(chuàng)建對象的最佳方式。

2、該模式使用多個簡單的對象逐步構(gòu)建復(fù)雜的對象,Builder類逐步構(gòu)建最終對象,該Builder類獨立于其他對象。

由各部分的子對象用一定的算法構(gòu)成,因為需求的變化,該復(fù)雜對象的各部分經(jīng)常面臨劇烈的變化,但結(jié)合起來的算法相對穩(wěn)定。

實例

class Item:
    # Item類提供水果的基礎(chǔ)信息的抽象類
    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():
        # 構(gòu)造清單,過程如下:
        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()

感謝各位的閱讀!關(guān)于“python建造者模式指的是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

網(wǎng)站欄目:python建造者模式指的是什么
網(wǎng)站鏈接:http://bm7419.com/article40/ijpgeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、網(wǎng)頁設(shè)計公司、企業(yè)建站、自適應(yīng)網(wǎng)站、企業(yè)網(wǎng)站制作、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)