Python簡單工廠模式

2021-07-29 14:54:00 字數 1464 閱讀 1615

簡單工廠屬於類的創新性模式,又叫靜態工廠方法模式。是專門通過定義乙個類來負責建立其他類的例項,被建立的例項通常都具有相同的父類。

模式特點:工廠工具條件產生不同功能的類。

簡單工廠的組成要素:負責具體產品物件的建立工作,是該模式的核心。當場景比較負責的時候,可能需要 乙個工廠類來負責產品的建立。以及產品的抽象介面或者抽象類,抽象所有產品的公共介面。

使用場景:工廠類負責建立的物件較少。只需要知道傳入工廠類的引數,對於如何建立物件並不關心。如下用工廠類實現乙個加減乘除的計算操作:

class

mathbase

(object):

defcalc

(self,x,y):

return

0class

mathadd

(mathbase):

defcalc

(self,x,y):

return x+y

class

mathsub

(mathbase):

defcalc

(self,x,y):

return x-y

class

mathmult

(mathbase):

defcalc

(self,x,y):

return x*y

class

mathdiv

(mathbase):

defcalc

(self,x,y):

try:

return x/y

except:

print('error:divided by zero')

return

0class

mathfactory

():@staticmethod

defcreatemath

(operate):

math_dict =

math_object = mathbase()

if operate in math_dict:

math_object = math_dict[operate]()

return math_object

defcalc

(operate,x,y):

calc_object = mathfactory.createmath(operate)

return calc_object.calc(x,y)

if __name__ == "__main__":

while

true:

operate = input("請輸入操作方法+-*/中的乙個")

number1 = input("請輸入引數1")

number2 = input("請輸入引數2")

print(calc(operate,int(number1),int(number2)))

python簡單工廠模式

簡單工廠模式相當於是乙個4s店中有各種汽車,建立在乙個類中,客戶無需知道具體汽車型號,只需要知道汽車類所對應的引數即可。但是工廠的職責過重,而且當型別過多時不利於系統的擴充套件維護。現代汽車4s店類 class carstore object 示例方法 建立工廠返回工廠物件引用 def init s...

python 簡單工廠模式

abc 是抽象類模組 abc.abc 是繼承抽象類 也可直接繼承 metaclass abcmeta abc.abstractmethod 是定義抽象方法 簡單工廠模式 通過介面建立物件,但不會暴露物件建立邏輯 在設計模式中主要用於抽象物件的建立過程,讓使用者可以指定自己想要的物件而不必關心物件的例...

Python 設計模式 簡單工廠模式

簡單工廠模式,作為oo 乙個較為簡單的建立者設計模式。其主要思想,通過介面或繼承建立 不同的子類。現在乙個dom解析器作為父類,其中xml,soup 分別作為兩個不同解析方式,作為子類。vechicl 的建立 如下 1 外部依賴的介面,它遮蔽了我具體使用的第三方庫 2class omtree 3de...