OO第四单元总结

2021/6/25 23:27:28

本文主要是介绍OO第四单元总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、架构设计

第四单元作业实现了UML类图、时序图、状态图的解析,并最终进行了有效性检查。为了能正确解析每种类型的图,深入理解其结构是十分必要的。

  • 第一次作业

    实现一个UML类图分析器UmlInteraction

    这次作业在中测中提交了十一次,感谢m1测试点,一己之力帮我揪出了无数个bug。

    而最后发现问题是自己写的判断type相等的方法可能出现空指针异常。由此观之,仔细阅读深入理解课程组给出的代码,是极有必要的。

     第一次作业刚拿到时其实不是很能理解,但阅读后发现其实不难,重点在于仔细读题。

     查询的算法多采用广度优先

  • 第二次作业

    扩展类图解析器,使得可以支持对UML状态图和顺序图的分析,可以通过输入相应的指令来进行相关查询。

    这次作业的难度较低,但类的行数已经接近500行,此时不改,意味着下次不得不重构

  • 第三次作业

  完成了有效性检查

  其中比较有难度的是各种循环继承,多重实现的有效性判断,通过维护栈实现了dfs代替递归

  以及辛酸的重构

  

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

  最明显的体验大概就是:

  第一单元开始时,我对多态完全没有头绪,不知道如何确定父类子类关系;但在第三单元,我能敏感的感受到第三次作业各种message就是对父类的继承,因此其属性、方法都应该有共性,也发现了当时指导书似乎存在问题。

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

  测试这个方面,我其实是有欠缺的,从始至终都在进行白盒测试。

  遥想第一单元第一次作业,连基本测试都不充分就勇敢提交,导致在强测很基础的测试点上挂掉

  之后直到第二单元,都是根据自己的理解,构造特殊的数据。

  第三单元某次作业在同学评测机的帮助下,才发现了传错参数这种低级错误。

  第四单元第一次作业也是因为白盒测试,根本没有测试到错误所在。

四、课程收获

  • 学会了java基本语法

  • 通过checkstyle规范了代码风格

  • 数据结构没学会正则表达式也学会并能应用了

  • 工厂模式、单例模式等等

  • 初次接触了神奇的多线程

  • 学习JML阅读

  • 理解UML

  • 面向对象的多态得到了应用

  • 在一次次重构中理解代码的可扩展性有多么重要

五、课程建议

  1.第四单元作业的指导书其实是不够清晰的,很多的信息需要从讨论区甚至群聊获得

  2.或许可以考虑互换第三、四单元作业,因为比起第四单元,似乎第三单元作业的强度更适合考期

  3.希望课程部分涉及一些评测机搭建方法



这篇关于OO第四单元总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程