
# 抽象类
class Operation():
def __init__(self, NumberA=0, NumberB=0):
self.NumberA = NumberA
self.NumberB = NumberB
def get_result(self):
pass
# 具体类
class AddOp(Operation):
def get_result(self):
return self.NumberB + self.NumberA
class MinusOp(Operation):
def get_result(self):
return self.NumberA - self.NumberB
class MultiOp(Operation):
def get_result(self):
return self.NumberA * self.NumberB
class DivideOp(Operation):
def get_result(self):
try:
return self.NumberA / self.NumberB
except ZeroDivisionError:
raise
# 简单工厂
class OperationFatory():
def ChooseOperation(self, op):
if op == '+':
return AddOp()
if op == '-':
return MinusOp()
if op == '*':
return MultiOp()
if op == '/':
return DivideOp()
if __name__ == '__main__':
factory = OperationFatory()
f = factory.ChooseOperation('/')
f.NumberA = 3
f.NumberB = 5
print(f.get_result())
简单工厂
![]()