簡單工廠模式

2022-07-04 08:39:12 字數 2156 閱讀 8366

簡單工廠模式又稱之為靜態工廠方法,屬於建立型模式。在簡單工廠模式中,可以根據傳遞的引數不同,返回不同類的例項。簡單工廠模式定義了乙個類,這個類專門用於建立其他類的例項,這些被建立的類都有乙個共同的父類。

說明:加減乘除運算,繼承同乙個運算類。運算工廠根據傳入引數返回相應的運算類。

python**:

1

class

operation(object):

2def

__init__

(self, op1,op2):

3 self.op1 =op1

4 self.op2 =op256

defgetresult():

7pass89

class

add(operation):

10def

getresult(self):

11return self.op1+self.op2

12class

sub(operation):

13def

getresult(self):

14return self.op1-self.op2

15class

mul(operation):

16def

getresult(self):

17return self.op1*self.op2

18class

div(operation):

19def

getresult(self):

20try:21

return self.op1/self.op2

22except:23

print

'divided by zero!'24

return025

class

undef(operation):

26def

getresult(self):

27print

'undefine operation'28

return029

30class

operationfactory(object):

31def

createoperation(self,operation,op1,op2):

32 self.operations =

38if operation in

self.operations.keys():

39return

self.operations[operation]

40else:41

return

undef(op1,op2)

4243

if__name__=='

__main__':

44 factory =operationfactory()

45 operation = factory.createoperation('

+',1,2)

46print

operation.getresult()

4748 operation = factory.createoperation('

-',1,2)

49print

operation.getresult()

5051 operation = factory.createoperation('

*',1,2)

52print

operation.getresult()

5354 operation = factory.createoperation('

/',1,2)

55print

operation.getresult()

5657 operation = factory.createoperation('

#',1,2)

58print operation.getresult()

執行結果:

工廠模式 簡單工廠

簡單工廠其實並不是乙個設計模式,反而比較像一種程式設計習慣。我個人的這樣總結簡單工廠 建立乙個類,封裝建立物件的 故事 現在我要開一家披薩店,叫bbk 必敗客 披薩,賣很多種披薩 芝士披薩 榴蓮披薩等等,我有乙個orderpizza string type 方法,根據客戶傳來的type來提供不同的披...

工廠模式 簡單工廠

工廠 處理建立物件的細節。目的 將例項化具體類的 從應用中抽離,或者封裝起來,可以避免干擾應用的其他部分。簡單工廠 簡單工廠其實不是乙個設計模式,反而像一種程式設計習慣。產品實現 desc 產品a public inte ce a class a1 implements a override pub...

簡單工廠模式,工廠模式,抽象工廠模式

三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...