《原創》python簡單工廠模式解析

2022-05-10 09:00:42 字數 2332 閱讀 3346

下面考慮《大話設計模式》中的乙個例子:

題目:用任意一種物件導向語言實現乙個計算器控制台程式。要求輸入兩個數和運算符號,得到結果。

程式應該做到:(1)可維護;(2)可復用;(3)可擴充套件;(4)靈活性好。

可維護:就是說**一處更改,不能產生連鎖反應,不能影響其他地方。

可復用:儘量減少重複性**。

可擴充套件:如果要擴充套件新的功能、新的業務,則只需要增加新的類就好了,不對已有的類和邏輯產生影響。插拔式的應用。

物件導向要點:

物件導向三大特性:封裝、繼承、多型。

通過封裝、繼承、多型把程式耦合降低。

業務邏輯和介面邏輯分開。

1

#coding=utf-82#

簡單工廠模式的介紹及**例項3#

舉個加減乘除的例子4#

定義乙個父類,預留介面

5class

operation(object):

6def

__init__(self, num1 = 0, num2 =0):

7 self.num1 =num1

8 self.num2 =num2910

#這是乙個預留的統一的介面,子類可以根據自己的情況呼叫這個介面,實現自己的特殊功能

11def

get_result(self):

12pass

1314

15class

add(operation):

16def

get_result(self):

17return self.num1 +self.num2

1819

class

minus(operation):

20def

get_result(self):

21return self.num1 -self.num2

2223

class

multi(operation):

24def

get_result(self):

25return self.num1 *self.num2

2627

class

divide(operation):

28def

get_result(self):

29try:30

return self.num1/self.num2

31except:32

return

'被除數不能為0,請重新輸入'33

34#這個就是乙個工廠,根據使用者的輸入選擇來呼叫相應的類去建立例項完成任務

35class

optionfactory():

36def

choose(self,op):

37if op == '+'

:38return

add()

39if op == '-'

:40return

minus()

41if op == '*'

:42return

multi()

43if op == '/'

:44return

divide()

4546

#根據使用者輸入來決定呼叫哪個類,這就是工廠類的作用

47if

__name__ == '

__main__':

48 ch = ''

49while

not ch == 'q'

:50 num1 = eval(raw_input('

please input number1: '))

51 op = str(raw_input('

please input the operation: '))

52 num2 = eval(raw_input('

please input number2: '))

53 opfactory =optionfactory()

54 optype =opfactory.choose(op)

55 optype.num1 =num1

56 optype.num2 =num2

57print

'the result is:

', optype.get_result()

58try

:59 ch =str(raw_input())

60except

:61 ch = ''

原創 設計模式 簡單工廠模式

從設計模式的型別上來說,簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法 static factory method 模式,但不屬於23種 gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙個特殊實...

工廠模式比簡單工廠模式優越在哪?(原創)

關於筆者對簡單工廠模式的分析,可以參考 簡單工廠模式的最大缺點,在於 新增乙個新的功能類時,簡單工廠類需要相應地新增其構造過程。雖然運用某些語言本身的反射和自省機制,可以省卻一些改變。但當建立過程越發複雜之後,比如在新類建立之前,需要很多準備工作,而且不同的類,準備過程各個不同。此時,就沒有辦法再借...

Python簡單工廠模式

簡單工廠屬於類的創新性模式,又叫靜態工廠方法模式。是專門通過定義乙個類來負責建立其他類的例項,被建立的例項通常都具有相同的父類。模式特點 工廠工具條件產生不同功能的類。簡單工廠的組成要素 負責具體產品物件的建立工作,是該模式的核心。當場景比較負責的時候,可能需要 乙個工廠類來負責產品的建立。以及產品...