• 简单工厂模式


     1 class Operation():
     2 
     3     def __init__(self, NumberA=0, NumberB=0):
     4         self.NumberA = NumberA
     5         self.NumberB = NumberB
     6 
     7     def GetResult(self):
     8         pass
     9 
    10 
    11 class AddOp(Operation):
    12 
    13     def GetResult(self):
    14         return self.NumberB + self.NumberA
    15 
    16 
    17 class MinusOp(Operation):
    18 
    19     def GetResult(self):
    20         return self.NumberA - self.NumberB
    21 
    22 
    23 class MultiOp(Operation):
    24 
    25     def GetResult(self):
    26         return self.NumberA * self.NumberB
    27 
    28 
    29 class DivideOp(Operation):
    30 
    31     def GetResult(self):
    32         try:
    33             return 1.0 * self.NumberA / self.NumberB
    34         except ZeroDivisionError:
    35             raise
    36 
    37 
    38 class OperationFatory():
    39 
    40     def ChooseOperation(self, op):
    41         if op == '+':
    42             return AddOp()
    43         if op == '-':
    44             return MinusOp()
    45         if op == '*':
    46             return MultiOp()
    47         if op == '/':
    48             return DivideOp()
    49 
    50 
    51 if __name__ == '__main__':
    52     ch = ''
    53     while not ch == 'q':
    54         NumberA = float(input('Please input number1:  '))
    55         op = input('Please input the operation:  ')
    56         NumberB = float(input('Please input number2:  '))
    57         OPFactory = OperationFatory()
    58         OPType = OPFactory.ChooseOperation(op)
    59         OPType.NumberA = NumberA
    60         OPType.NumberB = NumberB
    61         print('The result is:', OPType.GetResult())
    62         print('
    #--  input q to exit any key to continue')
    63         try:
    64             ch = input()
    65         except:
    66             ch = ''
  • 相关阅读:
    SAS数据集推送到sql server 数据库 实现代码段
    windows server 2008通过任务计划程序定时访问网站
    把SAS批提交添加到鼠标右键
    SAS 报表输出一些新式控制
    iis ajax post 跨域问题解决
    sas infile 控制导入长度
    SAS infile 导入txt示例
    sas 批量处理缺少缺失值
    vue $router $route
    jsonp使用post方法
  • 原文地址:https://www.cnblogs.com/gundan/p/8288824.html
Copyright © 2020-2023  润新知