日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

淺析Python 簡(jiǎn)單工廠模式和工廠方法模式的優(yōu)缺點(diǎn)

瀏覽:35日期:2022-07-17 16:38:55

前言

在《設(shè)計(jì)模式》一書(shū)中工廠模式提到了:

工廠方法模式(Factory Method) 抽象工廠模式 (Abstract Factory)

但是在實(shí)際過(guò)程中還有一種工廠模式經(jīng)常被使用,那就是 簡(jiǎn)單工廠模式(Simple Factory)。有一種常見(jiàn)的分類的方法:根據(jù)產(chǎn)品是由具體產(chǎn)品還是具體工廠可以分為 工廠方法模式 和 簡(jiǎn)單工廠模式;根據(jù)工廠的抽象程度可以分為 工廠方法模式 和 抽象工廠模式。接下來(lái)會(huì)通過(guò)例子對(duì)比簡(jiǎn)單工廠模式和工廠方法模式。

工廠意圖

定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類。Factory Method 使一個(gè)類的實(shí)例化延遲到其子類。

別名

虛構(gòu)造器(Virtual Constructor)

案例

第一階段

小李開(kāi)了一個(gè)代工廠,專門(mén)幫各大廠商生產(chǎn)手機(jī),一開(kāi)始只有小米找他生產(chǎn)小米手機(jī)(MiPhone),后來(lái)質(zhì)量過(guò)硬,聲名遠(yuǎn)播,蘋(píng)果公司也找上門(mén)了,準(zhǔn)備讓他生產(chǎn)蘋(píng)果手機(jī),生意來(lái)了,小李小手一揮,停工幾個(gè)月,加了一個(gè)生產(chǎn)線專門(mén)生成蘋(píng)果手機(jī)(Iphone)。于是乎,現(xiàn)在一個(gè)工廠有兩個(gè)生產(chǎn)線。

第一階段 UML 圖

讓我們借助 UML 圖直觀了解一下工廠現(xiàn)在的樣子。

淺析Python 簡(jiǎn)單工廠模式和工廠方法模式的優(yōu)缺點(diǎn)

第一階段代碼

通過(guò)代碼去實(shí)現(xiàn)這個(gè)邏輯

from abc import ABC, abstractmethod# 手機(jī)class Phone(ABC): @abstractmethod def make(self): pass# 蘋(píng)果手機(jī)class Apple(Phone): def make(self): print('make apple')# 小米手機(jī)class XiaoMi(Phone): def make(self): print('make xiaomi')class Factory: def product_phone(self, mobile_type): if mobile_type == ’apple’: return Apple() else: return XiaoMi()if __name__ == ’__main__’: factory = Factory() factory.product_phone(’apple’).make() factory.product_phone(’xiaomi’).make()

看一下運(yùn)行結(jié)果:

make applemake xiaomi

第二階段

隨著第一階段的訂單完成,現(xiàn)在越來(lái)越多的手機(jī)廠商來(lái)找小李來(lái)生產(chǎn)手機(jī),問(wèn)題來(lái)了,生產(chǎn)線改造需要導(dǎo)致整個(gè)工廠停工一段時(shí)間,每次停工對(duì)工廠來(lái)說(shuō)都是巨大的損失。那么該怎么解決問(wèn)題呢?一個(gè)工廠似乎不夠用了,那么該怎么解決呢? 把所有的生產(chǎn)線獨(dú)立出來(lái)到單獨(dú)的工廠,這樣子需要生產(chǎn)新的手機(jī)只需要新增新的工廠就好了,不會(huì)影響其他的手機(jī)的生產(chǎn)。

第二階段 UML 圖

同樣讓我們借助 UML 圖了解一下這個(gè)階段工廠的樣子吧。

淺析Python 簡(jiǎn)單工廠模式和工廠方法模式的優(yōu)缺點(diǎn)

第二階段代碼

同樣讓我們借助代碼去實(shí)現(xiàn)這一階段的邏輯

from abc import ABC, abstractmethod# 抽象工廠class AbastractFactory(ABC): @abstractmethod def product_phone(self): pass# 蘋(píng)果工廠class AppleFactory(AbastractFactory): def product_phone(self): return Apple().make()# 小米工廠class XiaomiFactory(AbastractFactory): def product_phone(self): return XiaoMi().make() # 生產(chǎn)線class Phone(ABC): @abstractmethod def make(self): pass# 蘋(píng)果生產(chǎn)線class Apple(Phone): def make(self): print('make apple')# 小米生產(chǎn)線class XiaoMi(Phone): def make(self): print('make xiaomi')def client_product(factory:AbastractFactory): return factoryif __name__ == ’__main__’: xiaomi = client_product(XiaomiFactory()) xiaomi.product_phone() apple = client_product(AppleFactory()) apple.product_phone()

看一下運(yùn)行結(jié)果:

make xiaomimake apple

總結(jié)

上面的案例中的倆個(gè)階段分別對(duì)應(yīng)了兩個(gè)設(shè)計(jì)模式,分別是:**簡(jiǎn)單工廠模式 **和 工廠方法模式。通過(guò)案例和對(duì)比,我們不難發(fā)現(xiàn)它們的的優(yōu)缺點(diǎn)。

簡(jiǎn)單工廠模式優(yōu)缺點(diǎn)

優(yōu)點(diǎn):客戶端與產(chǎn)品的創(chuàng)建分離,客戶端不需要知道產(chǎn)品創(chuàng)建的邏輯,只需要消費(fèi)該產(chǎn)品即可。 缺點(diǎn):工廠類集成了所有產(chǎn)品的創(chuàng)建邏輯,當(dāng)工廠類出現(xiàn)問(wèn)題,所有產(chǎn)品都會(huì)出現(xiàn)問(wèn)題;還有當(dāng)新增加產(chǎn)品都會(huì)修改工廠類,違背開(kāi)閉原則

工廠方法模式優(yōu)缺點(diǎn)

優(yōu)點(diǎn):更符合開(kāi)閉原則,增加一個(gè)產(chǎn)品類,則只需要實(shí)現(xiàn)其他具體的產(chǎn)品類和具體的工廠類即可;符合單一職責(zé)原則,每個(gè)工廠只負(fù)責(zé)生產(chǎn)對(duì)應(yīng)的產(chǎn)品 缺點(diǎn):增加一個(gè)產(chǎn)品,就需要實(shí)現(xiàn)對(duì)應(yīng)的具體工廠類和具體產(chǎn)品類;每個(gè)產(chǎn)品需要有對(duì)應(yīng)的具體工廠和具體產(chǎn)品類

以上就是淺析Python 簡(jiǎn)單工廠模式和工廠方法模式的優(yōu)缺點(diǎn)的詳細(xì)內(nèi)容,更多關(guān)于Python 工廠模式的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本高清不卡一区二区三区视频| 亚洲1区在线观看| 在线亚洲自拍| 韩日一区二区三区| 欧美不卡在线| 在线综合欧美| 亚洲精品免费观看| 999国产精品| 日韩欧美一区二区三区免费看| 精品国产乱码| 国产精品一区二区中文字幕| 亚洲精品伦理| 国产极品模特精品一二| 国产成人精品一区二区三区在线| 吉吉日韩欧美| 99国产精品| 亚洲精品动态| 国产成人免费av一区二区午夜| 久久wwww| 久久久国产精品网站| 国产在线观看91一区二区三区| 成人国产精品一区二区免费麻豆| 日韩大片免费观看| 六月丁香综合| 久久精品色播| 久久久久蜜桃| 日韩精品亚洲专区在线观看| 国产欧美一区二区三区国产幕精品| 六月丁香综合在线视频| 久久亚洲成人| 欧美有码在线| 99久久婷婷| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美一级网址| 好看的av在线不卡观看| 国产亚洲精aa在线看| 久久久久久黄| 国产精品hd| 日韩亚洲精品在线| 久久女人天堂| 视频一区免费在线观看| 狠狠久久伊人中文字幕| 一区二区亚洲视频| 日本不卡免费高清视频在线| 国产精品色在线网站| 最近高清中文在线字幕在线观看1| 欧美中文字幕| 久久美女性网| 三上亚洲一区二区| 欧美久久精品| 日韩欧美三区| 亚洲激情国产| 国产一区亚洲| 天堂av在线| 精品欠久久久中文字幕加勒比| aⅴ色国产欧美| 91精品啪在线观看国产18| 麻豆国产精品一区二区三区| 亚洲一区激情| 制服诱惑一区二区| 亚洲激情欧美| 国产精品日本欧美一区二区三区| 日韩在线视频精品| 日韩在线精品| 九九久久电影| 91久久亚洲| 香蕉久久久久久久av网站| 亚洲美洲欧洲综合国产一区| 欧美不卡高清| 一区二区不卡| 偷拍亚洲精品| 成人片免费看| 成人精品中文字幕| 久久免费大视频| 中国女人久久久| 亚洲伊人精品酒店| 日本少妇一区二区| 国产精品videossex| 国产91欧美| 女人av一区| 亚洲精品高潮| 国产精品久久久久久av公交车| 久久精品国产在热久久| a天堂资源在线| 日韩天堂av| 婷婷综合网站| 亚洲深深色噜噜狠狠爱网站 | 欧美日韩国产免费观看视频| 亚洲制服少妇| 欧美精品二区| 久久精品青草| 日本不卡高清视频| 天堂8中文在线最新版在线| 国产精品嫩草99av在线| 国产精品xxx| 国产美女精品视频免费播放软件| 最新中文字幕在线播放| 亚洲作爱视频| 日韩欧美不卡| 日韩高清电影一区| 激情婷婷欧美| 麻豆精品视频在线| 三级在线观看一区二区| 国产一区二区三区亚洲综合| 久久亚洲一区| 高清精品久久| 欧美日韩伊人| 蜜芽一区二区三区| 99久久99视频只有精品| 亚洲国产一区二区在线观看| 亚洲一区二区三区高清不卡| 久久精品一区二区国产| 男女激情视频一区| 日韩电影免费网址| 欧美日韩一区自拍| 在线亚洲自拍| 蜜桃成人av| 日韩欧美中文| 国产91在线精品| 久久亚洲人体| 国产精品18| 国产精品香蕉| 国产黄色精品| 国产精品传媒麻豆hd| 亚洲精品成人| 国产不卡一区| 国产 日韩 欧美 综合 一区 | 国产综合婷婷| 久久国产成人午夜av影院宅| 黑森林国产精品av| 国产+成+人+亚洲欧洲在线| 久久香蕉精品香蕉| 中文字幕在线视频网站| 91精品国产成人观看| 久久婷婷av| 午夜久久tv| 婷婷成人基地| 日本欧美在线看| 日韩网站中文字幕| 性欧美xxxx免费岛国不卡电影| 黑森林国产精品av| 午夜日韩在线| 四虎在线精品| 欧美国产免费| 国产精品av久久久久久麻豆网| 国产精品97| 欧美一区91| 正在播放日韩精品| 99在线精品视频在线观看| 日本亚洲三级在线| 久久不见久久见中文字幕免费| 成人在线观看免费视频| 久久精品免费一区二区三区| 国产精品久久观看| av资源亚洲| 亚洲永久精品唐人导航网址| 国产剧情一区| 亚洲成人国产| 日本aⅴ亚洲精品中文乱码| 国产精品15p| 精品欧美久久| 麻豆精品视频在线观看视频| 久久精品国产99久久| 综合激情网站| 在线手机中文字幕| 日本午夜精品视频在线观看| 日韩欧美综合| 国产精品一区三区在线观看| 日韩欧美一区二区三区在线视频| 亚洲深夜福利| 欧美中文一区| 伊人久久婷婷| 午夜精品成人av| 国产精品久久国产愉拍| 99国产一区| 香蕉成人av| 欧美激情另类| 欧美国产中文高清| 美国三级日本三级久久99| 国产成人精品免费视| 日本欧美在线| 亚洲一区二区三区中文字幕在线观看| 中文字幕人成乱码在线观看| 亚洲毛片一区| 麻豆9191精品国产| 久久国产小视频| 国产精品欧美大片| 水野朝阳av一区二区三区| 亚洲高清久久| 亚洲电影在线| 亚洲性图久久| 亚洲男女av一区二区| 国产精品av久久久久久麻豆网| 色偷偷色偷偷色偷偷在线视频| 精品视频国产| 久久永久免费| 国产精品精品| 久久久久欧美精品| 亚洲成a人片| 久久青草久久|