(P39)面向对象版表达式计算器
文章目录
1.表达式计算器设计
- 表达式树
将5+3*6解析成表达式树,整个表达式的值就等于根节点+的值,而根节点的值=其左节点5+右节点*的值(根节点的计算要依赖于其左节点和右节点),而*节点的值=左节点3+右节点6的值。
所以,要计算根节点的值,需要递归的遍历底下的子节点来进行计算。 - 类设计,继承体系
NumberNode数字节点的Calc方法等于数字本身,
BinaryNode二元运算节点:+或者*运算的节点,有两个操作数,左操作数,右操作数
加法运算节点AddNode和乘法运算节点MultiplyNode继承至BinaryNode; - 使用startUML
Node是一个抽象类,其Calc方法是纯虚方法;
BinaryNode也是一个抽象类,不能实例化一个具体对象;
每个节点都有一个Calc方法,返回值是double;
抽象类需要在isAbstract处打勾,字体也变成了斜体;
最终得到的类图如下:
22:32