本文以前面提到的四则运算的语法为例进行说明。首先回忆一下类图。
本文以实际的例子中会用到的类进行说明。首先是基类。
这个类的实现非常简单,只是定义了一个求值函数。所有具体的表达式类都会实现这个函数。
接下来是两个共通类,区别在于是否包含下级运算。这两个类的内容很简单,只是提供了保存运算信息的数据结构。
加法表达式的运算很简单,首先取得第一个表达式并求值,然后对后续运算表达式求值,并根据运算符是加还是减对表达式的求值结果进行二次运算。
乘法表达式和加法表达式基本一样,只是中间的运算符从加减变成了乘除。
函数调用类和其他的略有不同,内部保存了函数和参数表达式。这里应用了Python语言的特性,将函数直接作为可调用对象传入,最大限度地提供了扩展性。
整数表达式和小数表达式,结构完全相同,实际上可以考虑合二为一。
主程序的代码行数虽然比较多,但是如果结合下面的对象图来看就会很容易理解。
觉得本文有帮助?请分享给更多人。
阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】