婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python設(shè)計模式之抽象工廠模式詳解

python設(shè)計模式之抽象工廠模式詳解

熱門標(biāo)簽:企業(yè)彩鈴地圖標(biāo)注 上海正規(guī)的外呼系統(tǒng)最新報價 長春極信防封電銷卡批發(fā) 外賣地址有什么地圖標(biāo)注 電銷機器人錄音要學(xué)習(xí)什么 煙臺電話外呼營銷系統(tǒng) 如何地圖標(biāo)注公司 預(yù)覽式外呼系統(tǒng) 銀川電話機器人電話

抽象工廠模式(Abstract Factory Pattern):屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式。在抽象工廠模式中,接口是負責(zé)創(chuàng)建一個相關(guān)對象的工廠,不需要顯式指定它們的類,每個生成的工廠都能按照工廠模式提供對象。

意圖: 提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無需指定它們具體的類。

主要解決: 主要解決接口選擇的問題。

何時使用: 系統(tǒng)的產(chǎn)品有多于一個的產(chǎn)品族,而系統(tǒng)只消費其中某一族的產(chǎn)品。

如何解決: 在一個產(chǎn)品族里面,定義多個產(chǎn)品。

關(guān)鍵代碼: 在一個工廠里聚合多個同類產(chǎn)品。

優(yōu)點: 當(dāng)一個產(chǎn)品族中的多個對象被設(shè)計成一起工作時,它能保證客戶端始終只使用同一個產(chǎn)品族中的對象。抽象工廠模式相較于工廠模式,劃分更加明確清晰,面對復(fù)雜的生產(chǎn)任務(wù),管理和生產(chǎn)性能會更加高效。

缺點: 產(chǎn)品族擴展非常困難,要增加一整個系列的某一產(chǎn)品。

注意事項: 產(chǎn)品族難擴展,產(chǎn)品等級易擴展。

應(yīng)用實例: 對于一個生產(chǎn)水果的工廠,工廠模式主要針對一種水果創(chuàng)建一個涵蓋與該水果相關(guān)所有業(yè)務(wù)的工廠(例如:葡萄的運輸、保存、加工、包裝、售賣等相關(guān)業(yè)務(wù)全部被該工廠承包);而抽象工廠模式主要針對生產(chǎn)其中的某一環(huán)節(jié)進行創(chuàng)建相應(yīng)的工廠(例如:運輸工廠負責(zé)管理所有水果的運輸,售賣工廠負責(zé)管理所有水果的價格和售賣,庫存工廠負責(zé)管理所有水果的庫存計數(shù)等)。


那我們來一起使用抽象工廠模式,構(gòu)建一個購買水果的收銀小項目吧!(づ。◕ᴗᴗ◕。)づ

實現(xiàn)的思路

項目的主體包含6個部分:消費者(買水果的人),水果工廠(賣水果的人),水果工廠旗下的子工廠(品種工廠、價格工廠、包裝工廠、稱重工廠消費者主要向水果工廠傳達“購買需求”的相關(guān)信息(水果的種類、包裝、重量等…);水果工廠主要針對消費者的不同“購買需求”將任務(wù)分派給子工廠進行執(zhí)行;品種工廠負責(zé)管理水果的種類,價格工廠負責(zé)管理水果的價格,稱重工廠負責(zé)水果的稱重,包裝工廠負責(zé)水果的包裝方式。

項目的UML用例圖如下:

實現(xiàn)的代碼如下:

class FruitClass:
    # 品種工廠
    def get_name(self, name_index):
        if name_index == 0:
            name_object = OrangeClass()
        elif name_index == 1:
            name_object = Hami_MelonClass()
        elif name_index == 2:
            name_object = GrapeClass()
        else:
            name_object = None

        return name_object


class OrangeClass:
    # 橘子類
    def __init__(self):
        self.name = "橘子"

    def print_name(self):
        print("您購買的水果為:%s" % self.name)


class Hami_MelonClass:
    # 哈密瓜類
    def __init__(self):
        self.name = "哈密瓜"

    def print_name(self):
        print("您購買的水果為:%s" % self.name)


class GrapeClass:
    # 葡萄類
    def __init__(self):
        self.name = "葡萄"

    def print_name(self):
        print("您購買的水果為:%s" % self.name)


class FruitWeight:
    # 稱重工廠
    def __init__(self, weight):
        self.weight = float(weight)

    def print_weight(self):
        print("該水果的重量為:%.2f千克" % self.weight)


class FruitPrice:
    # 價格工廠
    def get_price(self, name_index, variety):
        if name_index == 0:
            price_object = OrangePrice(variety)
        elif name_index == 1:
            price_object = Hami_MelonPrice()
        elif name_index == 2:
            price_object = GrapePrice()
        else:
            price_object = None

        return price_object


class OrangePrice:
    # 橘子價格類
    def __init__(self, variety):
        self.variety = variety
        if self.variety == 1:
            self.price = 8.5
        else:
            self.price = 11.0

    def print_price(self):
        print("該水果的單價為:%.2f元/千克" % self.price)


class Hami_MelonPrice:
    # 哈密瓜價格類
    def __init__(self):
        self.price = 24.3

    def print_price(self):
        print("該水果的價格為:%.2f元/千克" % self.price)


class GrapePrice:
    # 葡萄價格類
    def __init__(self):
        self.price = 16.2

    def print_price(self):
        print("該水果的價格為:%.2f元/千克" % self.price)
        return self.price


class FruitPack:
    # 包裝工廠
    def __init__(self, pack):
        if pack == 1:
            self.pack = "散稱"
        else:
            self.pack = "盒裝"

    def print_pack(self):
        print("該水果的打包方式為:%s" % self.pack)


class FruitFactory:
    def __init__(self, name_index, weight, variety, pack):
        # 任務(wù)的分配,品種、重量、價格、包裝方式
        self.name_object = FruitClass().get_name(name_index)
        self.weight_object = FruitWeight(weight)
        self.price_object = FruitPrice().get_price(name_index, variety)
        self.pack_object = FruitPack(pack)

    def print_purchase(self):
        # 計算購買的金額
        money = self.price_object.price * self.weight_object.weight
        print("需要支付的金額共計為:%.2f元" % money)

    def show_info(self):
        # 展示最終的購買信息
        self.name_object.print_name()
        self.weight_object.print_weight()
        self.price_object.print_price()
        self.pack_object.print_pack()
        self.print_purchase()
        print("-*-" * 20)


class Consumer:
    # 消費者類
    def __init__(self):
        print("-*-" * 20)
        # 輸入原始的“購買需求”信息
        self.name = input("請輸入你要購買的水果名稱:0.橘子 1.哈密瓜 2.葡萄\n")
        self.weight = input("請輸入你要購買水果的重量(kg):\n")
        self.variety = input("如果您購買橘子,我們有2種橘子:0.不買橘子 1.甘橘 2.砂糖橘\n")
        self.pack = input("請您選擇該水果的包裝方式:1.散稱 2.盒裝\n")
        print("-*-" * 20)

    def request(self):
        # 返回相關(guān)的購買信息
        return self.name, self.weight, self.variety, self.pack


if __name__ == '__main__':
    # 創(chuàng)建顧客
    buyer = Consumer()
    # 拿到顧客的購買信息
    buy_info = buyer.request()
    # 使用水果工廠,傳達指令至旗下的子工廠并執(zhí)行購買操作
    buy_res = FruitFactory(int(buy_info[0]), int(buy_info[1]), int(buy_info[2]), int(buy_info[3]))
    # 購買信息的展示
    buy_res.show_info()

相關(guān)的測試用例:

本文關(guān)于設(shè)計模式的講解思想,參考鏈接:抽象工廠模式
如果有對python類的創(chuàng)建和繼承等用法還不熟悉的小伙伴,請參考這篇博客: python類的繼承

到此這篇關(guān)于python設(shè)計模式之抽象工廠模式的文章就介紹到這了,更多相關(guān)python抽象工廠模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python設(shè)計模式之抽象工廠模式原理與用法詳解
  • Python設(shè)計模式之抽象工廠模式
  • 舉例講解Python設(shè)計模式編程中對抽象工廠模式的運用
  • 舉例講解Python設(shè)計模式編程的代理模式與抽象工廠模式

標(biāo)簽:西寧 上饒 珠海 盤錦 宜昌 湖北 佳木斯 潮州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python設(shè)計模式之抽象工廠模式詳解》,本文關(guān)鍵詞  python,設(shè)計模式,之,抽象,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python設(shè)計模式之抽象工廠模式詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于python設(shè)計模式之抽象工廠模式詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美在线999| 视频在线观看一区| 久久综合av免费| 欧美激情一区二区三区四区| 亚洲欧美区自拍先锋| 日韩av一级电影| 国产一区二区三区免费| 91国偷自产一区二区开放时间 | 日韩欧美高清在线| 欧美福利一区二区| 欧美丰满嫩嫩电影| 久久超碰97中文字幕| 欧美日韩小视频| 丰满少妇在线播放bd日韩电影| 国产精品免费观看视频| 亚洲同性同志一二三专区| 久久综合综合久久综合| 在线看国产一区| 国产精品久久久久影院老司| 国模大尺度一区二区三区| 日韩欧美一级二级三级久久久| 亚洲综合在线免费观看| 99在线精品免费| 国产欧美视频在线观看| 日本亚洲视频在线| 欧美欧美午夜aⅴ在线观看| 国产精品久久久久久久久免费桃花 | 精品av综合导航| 亚洲成人你懂的| 在线观看不卡一区| 亚洲图片一区二区| 一级日本不卡的影视| 白白色亚洲国产精品| 国产精品久久久久久久久晋中| 色综合天天综合狠狠| 麻豆91在线观看| 色天天综合久久久久综合片| 自拍偷在线精品自拍偷无码专区| 91麻豆免费视频| 亚洲午夜私人影院| 亚洲国产精品自拍| 色婷婷精品久久二区二区蜜臀av| 欧美tickling挠脚心丨vk| 久久精品欧美日韩精品 | 欧美在线免费观看视频| 久久国产精品色| 国产精品久久久久久久裸模| 久久久99免费| 日韩无一区二区| 日韩欧美不卡在线观看视频| 欧洲精品一区二区三区在线观看| 国产伦理精品不卡| 亚洲国产高清在线| 色综合久久久久| 偷拍与自拍一区| 制服丝袜亚洲播放| 国产一区在线精品| 中文字幕乱码亚洲精品一区| 成人av电影免费在线播放| 亚洲欧美国产高清| 欧美日本在线一区| 轻轻草成人在线| 欧美国产成人在线| 9人人澡人人爽人人精品| 一区二区三区国产精华| 欧美精品777| 国产麻豆成人精品| 中文字幕中文字幕在线一区| 欧美人妇做爰xxxⅹ性高电影 | 七七婷婷婷婷精品国产| 国产精品丝袜久久久久久app| 欧美综合久久久| 狠狠网亚洲精品| 亚洲欧美一区二区久久| 日韩三级在线免费观看| 91视频观看免费| 激情亚洲综合在线| 亚洲免费观看高清完整版在线| 91精品在线免费观看| 91在线视频免费91| 老汉av免费一区二区三区 | 免费成人在线视频观看| 国产精品国模大尺度视频| 91精品国产综合久久久久久久久久 | 91老师国产黑色丝袜在线| 久久99国内精品| 亚洲福利一区二区三区| 中文字幕久久午夜不卡| 久久久久综合网| 丁香婷婷深情五月亚洲| 手机精品视频在线观看| 欧美色图片你懂的| 欧美一区二区三区免费在线看 | 久久99久久99精品免视看婷婷| 一本大道久久a久久综合婷婷| 国产精品电影一区二区三区| 男女性色大片免费观看一区二区 | 亚洲黄色小说网站| 日韩一区二区三区观看| 色婷婷综合激情| 成人avav影音| 成人精品免费看| 国内精品伊人久久久久av一坑| 男人的j进女人的j一区| 亚州成人在线电影| 水蜜桃久久夜色精品一区的特点| 欧美不卡视频一区| 欧美丝袜第三区| 色哟哟在线观看一区二区三区| 99综合电影在线视频| 丁香网亚洲国际| 国产精品18久久久久| 精品一区二区三区免费| 狠狠色狠狠色综合日日91app| 另类欧美日韩国产在线| 精东粉嫩av免费一区二区三区| 日本不卡中文字幕| 麻豆精品视频在线观看视频| 奇米在线7777在线精品 | fc2成人免费人成在线观看播放 | 欧美另类变人与禽xxxxx| 欧美日韩国产高清一区| 91精品中文字幕一区二区三区 | 欧美日韩国产色站一区二区三区| 色婷婷久久久久swag精品| 欧美午夜宅男影院| 91精品国产色综合久久不卡蜜臀 | 亚洲成人动漫av| 日本怡春院一区二区| 激情文学综合网| 成人精品国产一区二区4080| 日本韩国一区二区| 欧美美女bb生活片| 久久综合精品国产一区二区三区| 中文字幕不卡在线观看| 欧美一区二区三区四区久久| 三级一区在线视频先锋| 国产 日韩 欧美大片| 久久www免费人成看片高清| 香蕉av福利精品导航| 石原莉奈在线亚洲二区| 亚洲已满18点击进入久久| 亚洲另类春色校园小说| 国产精品久久久久久久久果冻传媒| 国产午夜亚洲精品羞羞网站| 亚洲国产精品成人久久综合一区| 1024成人网| 麻豆国产欧美一区二区三区| 另类小说色综合网站| av毛片久久久久**hd| 欧美色手机在线观看| 精品国产乱码久久久久久免费| 国产精品天天看| 亚洲aaa精品| 国产成人鲁色资源国产91色综 | 久久久99久久| 亚洲一区二区综合| 国内精品写真在线观看| 在线国产亚洲欧美| 欧美激情中文不卡| 视频一区国产视频| 99精品视频一区二区三区| 欧美一区欧美二区| 亚洲精品国产视频| 国产另类ts人妖一区二区| 欧美日韩一区二区欧美激情| 久久丝袜美腿综合| 日韩精品一级中文字幕精品视频免费观看| 国产91精品久久久久久久网曝门| 678五月天丁香亚洲综合网| 亚洲精品美腿丝袜| 国产一区二区三区免费播放| 欧美一级欧美三级| 亚洲成人高清在线| 91免费观看在线| 国产精品视频在线看| 国产在线麻豆精品观看| 在线播放日韩导航| 亚洲综合在线观看视频| 成人avav在线| 亚洲国产精品精华液ab| 极品美女销魂一区二区三区免费| 欧美年轻男男videosbes| 亚洲欧美经典视频| av在线一区二区| 中文字幕成人av| 成人午夜电影网站| 久久久99精品久久| 国产在线麻豆精品观看| 久久色在线视频| 狠狠狠色丁香婷婷综合激情| 日韩一区二区三区在线视频| 三级一区在线视频先锋 | 日韩视频一区二区在线观看| 中文字幕亚洲区| 精品少妇一区二区| eeuss鲁片一区二区三区| 欧美日韩黄色一区二区| 国产伦精品一区二区三区视频青涩 | 久久国产精品第一页|