基于度量来分析自己的程序结构
架构关系总览(直接使用的HW3)
各个类的介绍:
Operation
FuncDefine
Function
Solve
ParserExpr
ParserTerm
Cal
Term
Factor
TermResult
总体来看,没有突出对象这一关键词,Cal更是完全是一个过程编程,一个假期结束,oopre忘干净了。
架构设计体验
初次设计的时候我就是大概依从这个思路了,事实上扩展性也还不错,不过因为一个极大的问题,我在hw2进行了大范围修改(不算重构,思路框架没变)。即深浅拷贝问题。
这是血的教训,而且过程性编程也让我难以追踪对象的去处,导致到处都存在两个引用指向同一对象的问题,后来我无法再更改,只能无脑深拷贝,牺牲了速度和内存,理所应当的强测挂了。
于是hw3也就按题目要求随随便便完成作业,属实是想赶紧逃离这堆屎山。
未来可能场景,无非就是增加基础数学量,对应修改因子类型和基本项即可,而因为新增数学量导致的更多运算方式,也可以在Cal类里面添加对应的计算方法。但是如果遇到函数的递归定义,无法统一化为一个形式的sin cos,我的这个代码就大概率要重构了,毕竟我这次设计的基底就是,认为所有的算数运算最终都会得到一个拥有统一形式的因子(或许继承可以帮助我减少重构量,毕竟不可统一项可以继承一个子类,视为基础项的特殊形式)。
Bug分析
HW1
HW2
HW3
Hack心得
优化
心得体会及未来方向