工廠模式是乙個在軟體開發中用來建立物件的設計模式。
當程式執行輸入乙個「型別」的時候,需要建立於此相應的物件。這就用到了工廠模式。在如此情形中,實現**基於工廠模式,可以達到可擴充套件,可維護的**。當增加乙個新的型別,不在需要修改已存在的類,只增加能夠產生新型別的子類。
設計模式的「工廠」這個概念就是**於我們現實中的工廠,我們把原材料、圖紙等生產資料投入到乙個工廠裡面,工廠就會給我們輸出相應的產品,所以實現工廠方法很簡單,乙個函式就是乙個工廠。
class
car:
defrun
(self)
:print
("吧裡吧裡的跑"
)def
stop
(self)
:print
("吧拉吧拉的停"
)class
bmw(car)
:def
run(self)
:print
("寶馬---->>駕駕駕。。。。"
)def
stop
(self)
:print
("寶馬---->>籲。。。。"
)class
fute
(car)
:def
run(self)
:print
("福特---->>輪胎跑"
)def
stop
(self)
:print
("福特---->>腳剎"
)class
phoenix
(car)
:def
run(self)
:print
("鳳凰---->>用腳蹬"
)def
stop
(self)
:print
("鳳凰---->>手剎"
)class
ca***ctory
:"""工廠集中管理"""
defnew_car
(self,name)
:if name==
"bmw"
: bmw = bmw(
)return bmw
if name==
"phoenix"
: phoenix = phoenix(
)return phoenix
if name==
"fute"
: fute = fute(
)return fute
class
carstore
:"""4s店"""
def__init__
(self,factory)
: self.factory = factory
deforder
(self,name)
:"""訂單"""
new_car = self.factory.new_car(name)
return new_car
factory=ca***ctory(
)car_store = carstore(factory)
fh = car_store.order(
"phoenix"
)fh.run(
)fh.stop(
)
工廠模式的優點和應用
工廠模式、抽象工廠模式的優點:
1、工廠模式巨有非常好的封裝性,**結構清晰;在抽象工廠模式中,其結構還可以隨著需要進行更深或者更淺的抽象層級調整,非常靈活;
2、遮蔽產品類,使產品的被使用業務場景和產品的功能細節可以分而開發進行,是比較典型的解耦框架。
工廠模式、抽象工廠模式的使用場景:
當系統例項要求比較靈活和可擴充套件時,可以考慮工廠模式或者抽象工廠模式實現。比如,在通訊系統中,高層通訊協議會很多樣化,同時,上層協議依賴於下層協議,那麼就可以對應建立對應層級的抽象工廠,根據不同的「產品需求」去生產定製的例項。
工廠類模式的不足
1、工廠模式相對於直接生成例項過程要複雜一些,所以,在小專案中,可以不使用工廠模式;
2、抽象工廠模式中,產品類的擴充套件比較麻煩。畢竟,每乙個工廠對應每一類產品,產品擴充套件,就意味著相應的抽象工廠也要擴充套件。
設計模式 工廠模式(簡單工廠模式和方法工廠模式)
一 簡單工廠模式 簡單工廠模式概述 又叫靜態工廠方法模式,它定義乙個具體的工廠類負責建立一些類的例項 優點 客戶端不需要在負責物件的建立,從而明確了各個類的職責 缺點 這個靜態工廠類負責所有物件的建立,如果有新的物件增加,或者某些物件的建立方式不同,就需要不斷的修改工廠類,不利於後期的維護 動物類 ...
Python設計模式 建立型模式 工廠方法模式
描述 coding utf 8 class product def operation self pass class concrete product1 product def operation self return the result of concreteproduct1 class c...
python常用設計模式之一 工廠模式
一 工廠方法 一 工廠模式運用場景 如果因為應用建立物件的 分布在多個不同的地方,而不是僅在乙個函式 方法中,你發 現沒法跟蹤這些物件,那麼應該考慮使用工廠方法模式。有乙個工廠方法負責連線到不同的資料庫 mysql sqlite 另乙個工廠方法負責建立要求的 幾何物件 圓形 三角形 若需要將物件的建...