python3设计模式之简单工厂模式

Winona ·
更新时间:2024-09-21
· 975 次阅读

在Python3环境下,调试实现了《大话设计模式》中简单工厂模式,通过定义单独的工厂类,完成对具体的产品的实例化,参考链接

具体实现见代码:

#!/usr/bin/env python # -*- coding: utf-8 -*- # Date : 2017-10-15 21:46:28 # Author : John # Version : V1.001 # Func : class Operator(object): """docstring for Operator""" def __init__(self, NumberA=0, NumberB=0): super(Operator, self).__init__() self.NumberA = NumberA self.NumberB = NumberB def GetResult(self): pass class AddOp(Operator): """docstring for AddOp""" def GetResult(self): return int(float(self.NumberA) + float(self.NumberB)) class MinusOp(Operator): """docstring for MinusOp""" def GetResult(self): return int(float(self.NumberA) - float(self.NumberB)) class MultiOp(Operator): """docstring for MultiOp""" def GetResult(self): return int(float(self.NumberA) * float(self.NumberB)) class DivideOp(Operator): """docstring for DivideOp""" def GetResult(self): try: return float(float(self.NumberA) / float(self.NumberB) * 1.0) except ZeroDivisionError as e: print("DivideOp error, {0}".format(e)) class OperatorFactory(object): """docstring for OperatorFactory""" def ChooseOperator(self, op): if op == '+': return AddOp() if op == '-': return MinusOp() if op == '*': return MultiOp() if op == '/': return DivideOp() if __name__ == '__main__': ch = '' while not ch == 'q': NumberA = input('Please input NumberA: ') op = input('Please input operator: ') NumberB = input('Please input NumberB: ') factory = OperatorFactory() opType = factory.ChooseOperator(op) opType.NumberA = NumberA opType.NumberB = NumberB print('The result is: {0}'.format(opType.GetResult())) print('\n#-- input q to exit any key to continue') try: ch = str(input()) except Exception as e: print('Get input error: {0}'.format(e)) print('Use default value to ch') ch = '' 您可能感兴趣的文章:Python设计模式之简单工厂模式实例详解Python设计模式之抽象工厂模式原理与用法详解Python设计模式之工厂模式简单示例python版简单工厂模式Python设计模式之抽象工厂模式举例讲解Python设计模式编程中对抽象工厂模式的运用使用简单工厂模式来进行Python的设计模式编程举例讲解Python设计模式编程的代理模式与抽象工厂模式python中getattr函数使用方法 getattr实现工厂模式Python笔记之工厂模式



简单工厂模式 设计模式 工厂模式 Python3 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号