面向对象第四单元及课程总结
作者:互联网
一、本单元作业的架构设计
本单元主要需要理解uml规格是如何描述类图、状态图和顺序图以及如何相应对其进行解析。本单元作业架构已由课程组实现,我们只需要补充对应的函数即可。为了实现相应的功能,有一些元素我对其进行了重新创建,并使用某些容器储存,如下图所示:
对于需要用到id进行联系的元素使用hashmap存储,key值为元素的id;不需要的元素则使用arraylist存储。举例来说,对于类的继承关系,则我会在新构建的描述类的类中创建一个指针指向父类,若没有继承,则该指针为null。同理,其他元素的相应关系也如此相联系,以实现接口函数相应的功能。在较复杂的统计继承个数或者接口实现个数等系列问题时,采用dfs算法可以解决,要注意递归过程中的去重。
二、四个单元中架构设计及OO方法理解的演进
第一单元:第一单元解决求导问题是真的令人头秃,最后我实现的方法仍然很藕,主要算法和处理过程都在一个类里,风格分也是基本为零,那时仍主要是面向过程的思想,对面向对象的理解不够深刻。
第二单元:处理多线程电梯问题,对算法复杂度的要求不高,在这一单元自己很好地总结了上一单元的问题,将许多处理过程分类、细化,体会到了一丝低耦合的代码美观性。
第三单元:主要是根据JML规格实现相应的接口逻辑,架构已经由课程组实现。
第四单元:主要是理解相应的层次,理解UML规格。
三、四个单元中测试理解与实践的演进
第一单元需要手动构造数据,可以通过简单的黑箱测试代码正确性;第二单元测试比较复杂,多线程测试可以通过线程检测工具进行检测;第三四单元通过测试模块进行检测,注意要考虑全面。四个单元的测试下来,自己感觉到要保证代码正确性还是需要用大量测试数据作保证的。
四、课程收获
一学期的课程下来,自己的快速编程能力得到了很大的提升,重新捡回了大二上已经快被遗忘的一些算法;收获了面向对象的理论知识和相应的工具链;收获了面向对象思想,万物皆可对象;在编程过程中会考虑如何优化代码,让代码清晰且具有层次化。
五、改进建议
1、教教同学们如何搭建评测机及如何构造数据
2、有一些不清楚和有歧义的地方希望能描述好
3、对完成有困难的同学适当给一些指导建议
标签:代码,理解,面向对象,课程,单元,相应 来源: https://www.cnblogs.com/ghybuaa/p/14934009.html