Python常用設計模式 工廠模式

2021-10-01 18:15:05 字數 2139 閱讀 6704

工廠模式是乙個在軟體開發中用來建立物件的設計模式。

當程式執行輸入乙個「型別」的時候,需要建立於此相應的物件。這就用到了工廠模式。在如此情形中,實現**基於工廠模式,可以達到可擴充套件,可維護的**。當增加乙個新的型別,不在需要修改已存在的類,只增加能夠產生新型別的子類。

設計模式的「工廠」這個概念就是**於我們現實中的工廠,我們把原材料、圖紙等生產資料投入到乙個工廠裡面,工廠就會給我們輸出相應的產品,所以實現工廠方法很簡單,乙個函式就是乙個工廠。

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 另乙個工廠方法負責建立要求的 幾何物件 圓形 三角形 若需要將物件的建...