oo第一次作业总结

  本学期迎来了令人兴奋有零人惶恐的OO课程, 让我们能够有机会深度学习java这个对我们而言是新思考方式的语言。  由于在寒假的时候并没有认真的语系Java的语言,因此这三周的java作业我写的十分痛苦,但中间又夹杂着快乐与兴奋,让我体验到了写代码的无穷的乐趣。

一、基于度量分析程序结构(使用MetricsReloaded插件)

   作为第一次的java作业,难度确实没有那么大,但是由于没有语系Java的语言,作业的效果十分不理想,完成任务就比较困难,于是没有完成合并同类项的有关于性能分的操作,只有把系数为零的项给去掉了。

1.1 第一次作业

1.1.1 类图

 

 可以看出一共分成了三个类,分别为:

1.Main 

2. PolyCheck (用来检查所输入的式子是否正确)

3.Poly(求导)

可以看出第一次作业几乎没有用到面向对象的精髓,这个写法完完全全就是在用C语言的面向过程。

 

1.1.2 复杂度分析

第一次写的作业由于没有脱离面向过程的思想,直接在Poly类里直接写了一个完整的求导的方法,导致这个求导的方法happy的iv(G)和v(G)都很高,导致模块难以维护、隔离和复用。

(ev(G)为基本复杂度,iv(G)为设计复杂度,v(G)为圈复杂度) 

 

1.1.3 优缺点分析

 唯一一个有点就是能看出在没有丝毫java基础下的垂死挣扎,不择手段完成的感觉。

缺点就很多了,最大的问题就是没有用到面向对象的思想,完完全全的面向对象,没有与这个歌课程挂上钩。

在性能方面几乎丝毫没有努力,并没有一丝丝想要合并同类项的意思。

在一个方法所写的代码太多,以后要分成好几个代码一点点完成。

并没有使用老师所推荐的arraylist等方法,由于没有考虑性能优化,每求出就输出一点,答案十分的长。

代码风格差。

 

1.2 第二次作业

   在了解了第二次作业的提议之后,虽然没有那么感到恐怖,但是由于上了两节课了,想要试图按照面向对象的思想来写,结果写成了丑八怪。

1.2.1 类图 

类与作业一的类差不多,还是一个类判断另一个类求导,对过程创建了类。 

 

1.2.2 复杂度分析

这次在ev(G), iv(G), v(G)都没有出现红色的数字,这是一个明显的进步。在第一次代码风格的测试中吃了教训,因此避免了在一个方法里写太多东西,用几个方法来一个个完成。但事实上,由于是面向过程写得代码 维护、隔离和复用方面其实还是效果十分的差。

 

1.2.3 优缺点分析

 有点就是吸取了第一次的教训,在代码风格上也有了很大的进步,耦合情况也有了好转,正确率比较高。

但是缺点还是有很多,在作业一种的许多缺点也并没有改过来。

最大的缺点当然是代码还是面向过程的,其次就是在合并同类项等方面所做的努力很少。

 

1.3 第三次作业

 第三次作业是写的最绝望的一次,原因有很多。主要原因有以下几点:

(1)对递归类的问题从以前开始就极其的不扎实

(2)由于第一次和第二次的作业是面向过程,因此在写第三次作业时,在思路上和方法上都遇到了十分大的困难。

(3)对继承和接口的知识点掌握不熟练。

1.3.1 类图

有两个类都是用来检查正确性的(有一个专门检查指数大小的,为了方便新开了一个类,因为另一个类用递归检查的,不太方便改),还有一个类就是 求导(基于第二次作业改的)

1.3.2 复杂度分析

 是完全基于第二次作业改的,硬生生改成了递归,因此效果十分的差。边改边试,一点点凑出的答案。

 

1.3.3 优缺点分析

没有优点。

这次作业几乎就是破烂,刚开始试图有思路地写,但是怎么也做不对,后来使用试的方法,边试边改,活生生凑出来的代码,虽然有正确性,但这个我自己也看不懂。递归不是好东西。

 

二、分析程序bug

 第一次作业出现的问题是减产正确性的问题有遗漏,第二次同理。

第三次作业时,有一个很重要的问题就是再替换的时候没有考虑在递归深处所会发生的问题,因此虽然问题很少,但这个问题一改起来代码行数很多。

 

三、发现bug的策略

在第一次的时候,我因为想要学习他人面向对象的思想,我是一个一个看代码的,但发现第一次大家都是面向过程,于是没仔细看,把易错的式子交了上去,第二次也一样。

但是在第三次是,由于写得太悲惨,我开始认真度其他人的代码,尝试通过阅读来就错,但悲惨的是,虽然学习到了其他人的方法,但是我没有找出错来。 

 

四、Applying Creational Pattern

 这三次作业提升空间真的很大很大,但是如果要改,几乎没有可能,只能完完全全重新写一遍。以后一定要神车灌入面向对象的思想,不要以为这么做比较简单就做了,要为未来思考,否则回想我这次第二次作业坑了第三次一样,那段时间简直就是地狱。我一定会用继承的思想重新写一遍第三次作业。

posted @ 2019-03-27 22:05  yupobo  阅读(180)  评论(0编辑  收藏  举报