基于python3.6实现
最近开始看《大话设计模式》,由于平常用python,所以把代码改写了一下,也是心血来潮,不知道能不能更下去,慢慢来吧。
# 简单工厂模式
class Operation(object):
pass
class OpAdd(Operation):
def GetResult(self):
return self.numA + self.numB
class OpSub(Operation):
def GetResult(self):
return self.numA - self.numB
class OpMul(Operation):
def GetResult(self):
return self.numA * self.numB
class OpDiv(Operation):
def GetResult(self):
try:
result = self.numA / self.numB
return result
except:
print("ValueError: Divided by Zero.")
# raise ValueError("Divided by Zero.")
class OpUndef(Operation):
def GetResult(self):
print("OperationError: Undefined Operation.")
# raise ValueError("Undefined Operation.")
class OperationFactory(object):
def __init__(self):
self.operation = {}
self.operation["+"] = OpAdd();
self.operation["-"] = OpSub();
self.operation["*"] = OpMul();
self.operation["/"] = OpDiv();
def createOperation(self, op):
if op in self.operation:
opp = self.operation[op]
else:
opp = OpUndef()
return opp
if __name__ == "__main__":
ope = input("Operator: ")
A = input("numberA: ")
B = input("numberB: ")
oper = OperationFactory().createOperation(ope)
oper.numA = int(A)
oper.numB = int(B)
print(oper.GetResult())