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第四单元总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南