今天我们来编写一个加减乘除的计算器,其中我们运用简单工厂模式,首先我们来分析一下这个需求,一提到计算器,无非就有一个运算,还有两个数,最后就是显示在屏幕上,在这里我们首先要做的就是显示和业务逻辑分离,即前面的运算和数跟最后的显示要分开,降低前后的耦合度,再次,仔细想想这两个数和运算符也可以分离开,形成两个类,这样做也是为了降低耦合,因为这些数有可能有各种规则,运算也可能是各种运算而不只是我们这里的简单运算。
代码如下:
# coding=utf8
# 运算类基类
class Operation(object):
def __init__(self):
self.numberA = None
self.numberB = None
def get_result(self):
result = 0
return result
# 具体运算类(加法)
class OperationAdd(Operation):
def __init__(self):
super(OperationAdd, self).__init__()
def get_result(self):
return self.numberA + self.numberB
# 工厂类
class OperationFactory:
def create_factory(self):
oper = OperationAdd()
return oper
if __name__ == '__main__':
factory = OperationFactory()
oper = factory.create_factory()
oper.numberA = 1
oper.numberB = 2
print oper.get_result()
我们简单的进行了演示,扩展的时候可以在具体运算类中对运算规则进行变更,而且在工厂中也可以进行相对不同的运算进行选择。
下一节,我们进行策略模式的讲解。
网友评论