OO第一次博客作业

1.前三次作业总结

1.第一次作业

类图:

OO第一次博客作业_第1张图片

复杂度分析:

 

OO第一次博客作业_第2张图片

第一次作业比较简单,通过获取指数和系数构建表达式单元,最后进行排序后合并输出,可以看出代码复杂度主要集中在表达式的解析构建和输出上,这部分其实可以单独划分为一个类。

2.第二次作业

类图:

OO第一次博客作业_第3张图片

复杂度分析:

OO第一次博客作业_第4张图片

第二次作业我将每个乘积项作为单元,获取系数,x,sin,cos的指数四个属性,通过统一的求导方法,并合并输出,但缺点很明显,代码耦合度过高,也没有体现出面向对象的思想,导致作业三不得不完全重构,给作业三带来了很大难度。

3.第三次作业

类图:

OO第一次博客作业_第5张图片

复杂度分析:

OO第一次博客作业_第6张图片

第三次作业我采用了单独对字符串解析后构建表达式树的方法,但是明显看出结构过于复杂,方法过多,没有体现出面向对象思想

2.bug分析

前两次作业我并没有太过关注与化简,因此并未较明显的bug。

第三次作业,由于自己的过于自信,导致时间明显不足的情况下没有设计好架构,过于面向过程,从解析式的解读开始就有着严重的bug,过于滥用正则表达式,导致无法通过测试。

3.关于发现别人的bug

前两次作业我主要是通过本地测试其他人的代码的方式寻找bug,因此无法找到极端数据,没有发现bug,第三次作业由于未进入互测,也没有发现bug

4.关于对象构建

在作业比较简单时,由于创建的对象不多,因此不能体现出工厂模式的优点,但到作业三时,工厂的优点就体现了出来,由于需要大量构建甚至递归构建对象,工厂模式能够大大降低复杂度。

5.心得体会

在第一系列的作业中,我可以说是非常失败了,发现了自己有很多问题,过于拖延,盲目自信,写代码前不事先分析设计结构,导致最终甚至没有通过弱测。

对于面向对象的学习体会,首先就是架构化的设计方法,要构造什么对象,设计什么方法都是事先就要确定的,这次作业我还有一个问题就是没有成功的从面向过程转变过来,有时依旧是写一步想一步,代码也没有很好的封装,可以说有很多问题。

在以后的学习中,我必须要克服这些问题,学会用面向对象的思想去完成任务。

你可能感兴趣的:(OO第一次博客作业)