BUAA_OO_第四单元总结

面向对象第四单元总结

一、总结本单元作业的架构设计

第一次作业

这一次的作业在MyUmllinteraction中进行解析因为这回作业并没有超500行,就没有把它另开一个类解析出来相应的类接口以及操作后存进MyClassMyInterface,MyOperation中,并且在MyClassMyInterface中记录了相应的父类。当读取到Association和InterfaceRealization的时候,在每个类中设置了一个关联列表,将被关联的对象的Id填见进去就行了,接口也是同理。

第二次作业

第二次作业加了时序图和状态图,我采取的也是和第一次作业相同的解析方法,解析到了相应的元素创建相应的类或是将元素加进类中

时序图的类包括MyLifelineMyInteraction。状态图的类包括MyFinalStateMyPseudostateMyRegionMyStateMyStateMachine以及MyTransition

应该打包的

第三次作业

第三次因为加了一个规格判断,导致超了500行,所以新创了一个check类。并且将解析的部分也分出来,创建了一个analysis类。

其他架构与第四次一样。只是改了存储的方式,因为接口可以重复,不能用HashMap要用ArrayList来存。

二、总结在四个单元中架构设计及OO方法理解的演进

第一个单元

​ 第一个单元应该说是最痛苦的一个单元,几乎是从零开始写因为没做pre,连提交都不会,基本的架构都是学第一次实验课上的架构,将每个因子拆开,但是这样应付第一次作业还可以,但是第二次作业加了括号之后,很难处理,不得不选择重构。但是当时对于面向对象的思想不是很理解,导致第二次作业完全是面向过程编程,只用了一个类。但是经过同学的帮助,了解了面向对象的思想。要分层,要抽象出来,不能混在一起,要将功能拆分。经过一个星期的学习之后,在第三次作业的时候,分了很多个类,其中一个是用来格式检查,也是在那个时候,我的OO应该说是步入正轨。

第二个单元

​ 这个单元学了多线程,架构的设计也是模仿实验课上的架构,细节方面进行了调整。这个单元需要注意的就是对于锁的使用,什么时候该加锁,该加锁,各个线程之间的执行顺序,共享侯乘列表谁获取,以及最终如何终止的问题。

​ 经过第一个单元的学习,我能够较好地将结构剖析出来。分析电梯的各个部分

这个单元对于OO的理解就是一些设计模式,策略模式,工厂模式等等。

第三个单元

​ 第三个单元的架构基本不用自己考虑,自己照着翻译就行。但是但是,这样极易tle,自己要去考虑复杂度的问题,凡事On^2的复杂度的话,基本就要tle了。所以在这个单元我对于OO的方法理解就是一些容器的选择上,像优先队列的使用。

第四个单元

​ 这个单元层次化非常清楚,基本分析一下功能,就能知道相应的类应该怎么样去设计。这个单元OO方法理解是UML的理解,各个成员的意义以及一些联系,以及将功能拆分,封装,一个类只干一件事的思想。高内聚低耦合。

三、总结在四个单元中测试理解与实践的演进

​ 第一个单元因为连完成都困难,基本上没有测试,只是自己构造了几个认为会错的数据。其次就是用一些同学的数据。但是第二个单元对OO有了个初步的理解之后,测试能够针对自己的设计思路去构造一些针对性的数据。第三个单元因为不复杂,基本理解思路之后形式验证就够了,但是需要考虑的就是那个复杂度的问题。第四个单元基本上就是使用StarUml去构造相应的UML图去测试自己写的薄弱环节。但是还是感觉前提是要对要求理解清楚,否则构造的数据也不能较好地debug。

四、总结自己的课程收获

​ 经过这一个学期的OO学期,应该说是痛并快乐着,痛是因为太难了,每个星期太累了。快乐是因为,我认为我可能完不成的时候,每次想要放弃的时候,我挺下来了,没有想到自己能够坚持写完所有作业。因为在过去的数据结构学习中,我自己非常容易退缩,怕麻烦,不想写。但是我在OO课中也感受到了,但是经过同学的帮助,以及自己的坚持,还是咬牙将那些东西学会。比如大一没有学会的算法,大二还是把它重新学习回来了。

​ 其次就是OO课程的学习对于我的码力有了一个质的提升,我没有想到我能够一晚上瞧一千多行的代码,手抽筋的感觉,这是我原来想都不敢想的。再一个就是对于代码阅读能力的提升,因为OO经常要写用到一些算法,所以自己会在网上去找一些别人写的算法,将它看懂学会。

​ OO对于我的思维方式也有一个很好的帮助。让我能够将很多事物抽象出来,分层次,并将其联系起来,搭个架构。就比如在干一件事情的时候,我会将他分成几部分,每一部分该干什么,有什么联系。而且往往这种思维方式会事半功倍。

​ 具体来说的话,第一个单元懂得了类的使用,以及一些语法,正则表达式。第二个单元就是设计模式,以及多线程的理解。第三个单元是对于jml的相关理解,具体语法以及相关图的算法的复习。第四个单元就是对于uml整个架构的理解,以及各个元素之间的关系。

​ 总的来说,OO的一个整个学期的学习,对于一个编程菜鸟来说,应该说是炼狱体验,但是熬过来了,能力也就提升了。同时也非常感谢这个机会,让我的代码能力有了一个较大的提升。

五、三个具体改进建议

1、pre的重要性希望强调再多一点,因为我当时看pre说不算分,我就没管了。谁知道这之间影响了整个OO的学习。

2、希望能够对一些学习困难的同学,提供一些帮助,类似于难点搜集,进行统一解惑。或是组织线下或是线上的交流,可以是同学之间,也可以是和助教之间。来共同完成一周的任务。

3、希望实验和作业再紧密一些,给点提示。因为新手直接上手java还是非常困难的。我每次写完实验,都不知道对不对,也不知道答案是啥,又投入到一周的任务中了。有的时候,感觉实验和作业脱节了。

posted @ 2021-06-23 23:27  Tao-30  阅读(49)  评论(0)    收藏  举报