要求业务逻辑与交互view分离。
class Operation(object):
def _init_(self):
self._operand1 = None
self._operand2 = None
@property
def operand1(self):
return self._operand1
@operand1.setter
def operand1(self, value):
self._operand1 = value
@property
def operand2(self):
return self._operand2
@operand2.setter
def operand2(self, value):
self._operand2 = value
def get_result(self):
pass
class OperationAdd(Operation):
def get_result(self):
return self._operand1 + self._operand2
class OperationSub(Operation):
def get_result(self):
return self._operand1 - self._operand2
class OperationFactory(object):
@staticmethod
def make_operation(value):
return {
'+': OperationAdd(),
'-': OperationSub(),
}.get(value)
if __name__ == '__main__':
add = OperationFactory.make_operation('+')
add.operand1 = 10
add.operand2 = 20
print add.get_result()
sub = OperationFactory.make_operation('-')
sub.operand1 = 3
sub.operand2 = 2
print sub.get_result()