Python設(shè)計模式之簡單工廠模式實例詳解
本文實例講述了Python設(shè)計模式之簡單工廠模式。分享給大家供大家參考,具體如下:
簡單工廠模式(Simple Factory Pattern):是通過專門定義一個類來負(fù)責(zé)創(chuàng)建其他類的實例,被創(chuàng)建的實例通常都具有共同的父類.
下面使用簡單工廠模式實現(xiàn)一個簡單的四則運算
#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'Andy' ''' 大話設(shè)計模式 用任意一種面向?qū)ο笳Z言實現(xiàn)一個計算器控制臺程序。要求輸入兩個數(shù)和運算符號,得到結(jié)果 設(shè)計模式——簡單工廠模式 簡單工廠模式(Simple Factory Pattern):是通過專門定義一個類來負(fù)責(zé)創(chuàng)建其他類的實例,被創(chuàng)建的實例通常都具有共同的父類。 ''' class Operation(object): ''' 四則運算的父類,接收用戶輸入的數(shù)值 ''' def __init__(self, number1=0, number2=0): self.num1 = number1 self.num2 = number2 def GetResult(self): pass pass #加法運算類 class OperationAdd(Operation): def GetResult(self): return self.num1 + self.num2 #減法運算類 class OperationSub(Operation): def GetResult(self): return self.num1 - self.num2 #乘法運算類 class OperationMul(Operation): def GetResult(self): return self.num1 * self.num2 #除法運算類 class OperationDiv(Operation): def GetResult(self): if self.num2 == 0: return '除數(shù)不能為0 ' return 1.0*self.num1 / self.num2 #其他操作符類 class OperationUndef(Operation): def GetResult(self): return '操作符錯誤' #簡單工廠類 class OperationFactory(object): def choose_oper(self,ch): if ch == '+': return OperationAdd() elif ch == '-': return OperationSub() elif ch == '*': return OperationMul() elif ch == '/': return OperationDiv() else: return OperationUndef() if __name__ == "__main__": ch = '' while not ch == 'q': num1 = input('請輸入第一個數(shù)值: ') oper = str(raw_input('請輸入一個四則運算符: ')) num2 = input('請輸入第二個數(shù)值: ') # Operation(num1,num2) OF = OperationFactory() oper_obj = OF.choose_oper(oper) oper_obj.num1 = num1 oper_obj.num2 = num2 print '運算結(jié)果為: ',oper_obj.GetResult()
運行結(jié)果:
請輸入第一個數(shù)值: 51
請輸入一個四則運算符: -
請輸入第二個數(shù)值: 15
運算結(jié)果為: 36
這幾個類的結(jié)構(gòu)圖如下:
專門定義一個Operation類作為父類,加減乘除運算類繼承Operation類,OperationFactory類用來決定什么時候創(chuàng)建對應(yīng)的類
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
python打包生成的exe文件運行時提示缺少模塊的解決方法
今天小編就為大家分享一篇python打包生成的exe文件運行時提示缺少模塊的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10Python2.7實現(xiàn)多進(jìn)程下開發(fā)多線程示例
這篇文章主要為大家詳細(xì)介紹了Python2.7實現(xiàn)多進(jìn)程下開發(fā)多線程示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-05-05Python實現(xiàn)基于Excel數(shù)據(jù)繪制棋盤圖
這篇文章主要為大家介紹了如何根據(jù)可視化的需要,利用Python將Excel中的數(shù)據(jù)用棋盤圖的樣式來展示,文中的示例代碼簡潔易懂,需要的可以參考一下2023-07-07在python下實現(xiàn)word2vec詞向量訓(xùn)練與加載實例
這篇文章主要介紹了在python下實現(xiàn)word2vec詞向量訓(xùn)練與加載實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06