【设计模式系列】简单工厂类——计算器设计实例
2014-04-07 13:51
603 查看
/*
作者:五岳
出处:http://www.cnblogs.com/wuyuegb2312
对于标题未标注为“转载”的文章均为原创,其版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
*/
![](https://img-blog.csdn.net/20140407135157890?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva3NlYXJjaA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
模式特点:工厂根据条件产生不同功能的类。
程序实例:四则运算计算器,根据用户的输入产生相应的运算类,用这个运算类处理具体的运算。
代码特点:C/C++中的switch...case...分支使用字典的方式代替。
使用异常机制对除数为0的情况进行处理。
代码
作者:五岳
出处:http://www.cnblogs.com/wuyuegb2312
对于标题未标注为“转载”的文章均为原创,其版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
*/
模式特点:工厂根据条件产生不同功能的类。
程序实例:四则运算计算器,根据用户的输入产生相应的运算类,用这个运算类处理具体的运算。
代码特点:C/C++中的switch...case...分支使用字典的方式代替。
使用异常机制对除数为0的情况进行处理。
代码
简单工厂模式 class Operation: def GetResult(self): pass class OperationAdd(Operation): def GetResult(self): return self.op1+self.op2 class OperationSub(Operation): def GetResult(self): return self.op1-self.op2 class OperationMul(Operation): def GetResult(self): return self.op1*self.op2 class OperationDiv(Operation): def GetResult(self): try: result = self.op1/self.op2 return result except: print "error:divided by zero." return 0 class OperationUndef(Operation): def GetResult(self): print "Undefine operation." return 0 class OperationFactory: operation = {} operation["+"] = OperationAdd(); operation["-"] = OperationSub(); operation["*"] = OperationMul(); operation["/"] = OperationDiv(); def createOperation(self,ch): if ch in self.operation: op = self.operation[ch] else: op = OperationUndef() return op if __name__ == "__main__": op = raw_input("operator: ") opa = input("a: ") opb = input("b: ") factory = OperationFactory() cal = factory.createOperation(op) cal.op1 = opa cal.op2 = opb print cal.GetResult()
相关文章推荐
- 【设计模式】之实例化简单工厂、工厂方法模式
- 设计模式系列 - 简单工厂 推荐
- 【设计模式】简单工厂模式——以一个简单的计算器为例
- 简单的计算器程序可以用到简单工厂的设计模式
- 简单那工厂模式(计算器设计)
- 设计模式的简单工厂模式实例
- C#简单工厂设计模式实现计算器
- 简单工厂模式——23种设计模式综合实例应用
- C#设计模式系列:简单工厂模式(Simple Factory)
- 常用Java设计模式系列(5)- 简单工厂、工厂方法模式和抽象工厂模式
- Java设计模式编程中简单工厂与抽象工厂模式的使用实例
- 大话设计模式中简单工厂模式的计算器实例的C++代码
- 简单工厂,工厂方法,抽象工厂 三种设计模式的区别和实例
- 简单工厂方法模式-计算器实例
- 设计模式--简单工厂模式之计算器
- Java技术_每天掌握一种设计模式(003)_使用场景及简单实例(创建型:工厂方法)
- 实例解析C#设计模式编程中简单工厂模式的使用
- 设计模式之工厂模式系列(简单工厂,工厂模式,抽象工厂模式)
- 设计模式系列一创建型模式之(简单工厂VS工厂方法)
- 简单工厂设计模式计算器