一.简单工厂模式

首先来看下工厂模式的原理图:

Python设计模式

 

模式特点:工厂根据条件产生不同功能的类。

程序实例:四则运算计算器,根据用户的输入产生相应的运算类,用这个运算类处理具体的运算。

代码特点:C/C++中的switch...case...分支使用字典的方式代替。

     使用异常机制对除数为0的情况进行处理。

Python实现代码如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#  Author: Jason Wang

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 = input("operator: ")
    opa = input("a: ")
    opb = input("b: ")
    factory = OperationFactory()
    cal = factory.createOperation(op)
    cal.op1 = int(opa)
    cal.op2 = int(opb)
    print(cal.GetResult())
简单工程模式

相关文章:

  • 2022-12-23
  • 2022-03-03
  • 2021-07-02
  • 2022-12-23
猜你喜欢
  • 2021-10-25
  • 2021-09-08
  • 2021-05-03
  • 2021-10-14
  • 2021-07-10
相关资源
相似解决方案