Python设计模式之简单工厂模式实例详解

  

本文实例讲述了Python设计模式之简单工厂模式。分享给大家供大家参考,具体如下:

  

简单工厂模式(简单工厂模式):是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

  

下面使用简单工厂模式实现一个简单的四则运算

        #?usr/bin/env python   # - * -编码:utf - 8 - *   __author__=鞍驳稀?   '''   大话设计模式   用任意一种面向对象语言实现一个计算器控制台程序。要求输入两个数和运算符号,得到结果   设计模式,简单工厂模式   简单工厂模式(简单工厂模式):是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。   '''   操作类(对象):   '''   四则运算的父类,接收用户输入的数的值   '''   def __init__(自我,number1=0,科学=0):   自我。num1=number1   自我。num2=科学   def GetResult(自我):   通过   通过   #加法运算类   类OperationAdd(操作):   def GetResult(自我):   回归自我。num1 + self.num2   #减法运算类   类OperationSub(操作):   def GetResult(自我):   回归自我。num1——self.num2   #乘法运算类   类OperationMul(操作):   def GetResult(自我):   回归自我。num1 * self.num2   #除法运算类   类OperationDiv(操作):   def GetResult(自我):   如果自我。num2==0:   返回“除数不能为0的   返回1.0 *自我。num1/self.num2   #其他操作符类   类OperationUndef(操作):   def GetResult(自我):   返回的操作符错误的   #简单工厂类   类OperationFactory(对象):   def choose_oper(自我,ch):   如果ch==?”:   返回OperationAdd ()   elif ch==?”:   返回OperationSub ()   elif ch==?’:   返回OperationMul ()   elif ch==??   返回OperationDiv ()   其他:   返回OperationUndef ()   if __name__==癬_main__”:   ch="   虽然不是ch==拔省?   num1=输入(“请输入第一个数值:')   ③=str (raw_input(“请输入一个四则运算符:"))   num2=输入(“请输入第二个数值:')   #操作(num1, num2)=OperationFactory ()   oper_obj=OF.choose_oper(打开)   oper_obj。num1=num1   oper_obj。num2=num2   打印“运算结果为:“,oper_obj.GetResult ()      之前      

运行结果:

  
  

请输入第一个数值:,51
  请输入一个四则运算符:,-
  请输入第二个数值:,15
  运算结果为:,36

  

     

这几个类的结构图如下:

  

 Python设计模式之简单工厂模式实例详解

  

专门定义一个操作类作为父类,加减乘除运算类继承操作类,OperationFactory类用来决定什么时候创建对应的类

  

更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python套接字编程技巧总结》,《Python函数使用技巧总结》,《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

  

希望本文所述对大家Python程序设计有所帮助。

Python设计模式之简单工厂模式实例详解