亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python設(shè)計模式之簡單工廠模式實例詳解

 更新時間:2019年01月22日 08:41:06   作者:Andy冉明  
這篇文章主要介紹了Python設(shè)計模式之簡單工廠模式,結(jié)合實例形式分析了簡單工廠模式的概念、原理及相關(guān)使用技巧,需要的朋友可以參考下

本文實例講述了Python設(shè)計模式之簡單工廠模式。分享給大家供大家參考,具體如下:

簡單工廠模式(Simple Factory Pattern):是通過專門定義一個類來負責創(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):是通過專門定義一個類來負責創(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īng)典教程

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

最新評論