23種設計模式之python實現 工廠方法

2021-06-21 08:09:48 字數 1174 閱讀 2976

#理解:
#工廠模式:例項化延遲到子類

#例子:產品為一種運算

#缺點:使用類作為代價,且factory對修改不封閉,對於每加乙個product就要修改factory,當然可以使用配置檔案,這樣就能對factory封閉。

class product_opt:

def getresult(self):

pass

class product_add(product_opt):

def getresult(self):

return self.num1+self.num2

class product_sub(product_opt):

def getresult(self):

return self.num1-self.num2

class product_err(product_opt):

def getresult(self):

print "error"

return 0

class factory:

operation={}

operation["+"]=product_add();

operation["-"]=product_sub();

def createproduct(self,ch):

if ch in self.operation:

op=self.operation[ch]

else:

op=product_err();

return op

if __name__=="__main__":

num1=input("a:")

op=raw_input("operation:")

num2=input("b:")

factory=factory();

product=factory.createproduct(op)

product.num1=num1

product.num2=num2

print product.getresult()

執行結果,如圖:

23種設計模式之 工廠設計模式

前言 記得大二時上過一門設計模式的課,當時聽的那叫乙個懵逼。如今工作半年了,想把東西再撿起來,順便記錄一下。工廠模式是平時接觸的多一點的,就從工廠模式開始吧 什麼是工廠設計模式?工廠設計模式,顧名思義,就是用來生產物件的,是一種建立型設計模式。在物件導向語言中,萬物皆物件,這些物件都需要建立,如果建...

23種設計模式之命令模式

定義 將乙個請求封裝成乙個物件,從而讓你使用不同的請求把客戶端引數化,對請求排隊或者記錄請求日誌,可以提供命令的撤銷和恢復功能。型別 行為類模式 類圖 顧名思義,命令模式就是對命令的封裝,首先來看一下命令模式類圖中的基本結構 以上三個類的作用應該是比較好理解的,下面我們重點說一下invoker類和r...

23種設計模式之策略模式

定義 定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換。型別 行為類模式 類圖 策略模式是對演算法的封裝,把一系列的演算法分別封裝到對應的類中,並且這些類實現相同的介面,相互之間可以替換。在前面說過的行為類模式中,有一種模式也是關注對演算法的封裝 模版方法模式,對照類圖可以看到,策略模...