最近自学Python,想做些小项目练练手,发现程杰写的大话设计模式这书不错,适合新手入门。开始这本书第一章学习,这里实现简单工厂模式。以实现图形界面的简易计算器为实例,能够计算+-/*% ( )等混合表达式,ps: 没有实现负数的功能。具体过程大致分为以下几个步骤:
- 定义只计算两个数的运算类 Operation
- 继承Operation类,实现+-*/%子类
- 定义运算工厂OperationFactory
- 定义混合运算类MixedOperation
- 定义图形界面显示类Display
1. 定义只计算两个数的运算类 Operation
定义两个成员变量,及一个成员函数:
class Operation:
number_a = 0
number_b = 0
def get_result(self):
return 0
2. 继承Operation类,实现+-*/%子类
如定义加法类OperationAdd,重写get_result()方法:
class OperationAdd(Operation):
def get_result(self):
return self.number_a + self.number_b
3. 定义运算工厂OperationFactory
这就是这一章用到的简单工厂模式,通过实例化对象来完成某一种运算需求。这里用到Python的字典来实现如C++语言中的switch功能。
class OperationFactory():
@staticmethod
def create_o