OO-Pre课程总结
目录
1.架构设计
| 名称 | 类型 | 功能 |
| Main | Class | 读取输入;作为枢纽,识别指令并将其传递给各个操作执行类;生成Adventurer |
| Commodity | Class | 作为Adventurer、Bottle、Equipment、Food的共同父类,声明属性:value |
| Adventurer | Class | 程序中最主要的对象类,含有对于自身所拥有的价值体、金钱、雇佣的Adventurer进行操作的各个函数 |
| Bottle | Class | 声明属性:id,name,capacity,isEmpty;提供get方法;下有RegularBottle等三个子类 |
| Equipment |
Class | 声明属性:id,name,star;提供get方法;下有RegularEquipment等三个子类 |
| Food | Class | 声明属性:id,name,energy;提供get方法 |
| ItemOperator | Class | 负责处理Adventurer与Bottle、Equipment、Food相关的指令 |
| CommodityOperator | Class | 负责处理与value密切相关的指令 |
| Fight | Class | 负责处理战斗相关的指令、储存战斗日志 |
| Trade | Class | 负责处理与买卖物品相关的指令 |
| Store | Class | 负责记录Adventurers卖出的物品,并生成Adventurer想要购买卖的物品 |
迭代过程
- 在前两次作业中,我并未编写专门的读取输入的方法,直到第三次作业中看到了助教提供的输入解析代码,这才依葫芦画瓢,仿照着写了一个;同时,在此基础上编写了seInput方法,在Junit测试中帮了我很大忙。
- 另一方面,在前几次作业中,由于所需处理的指令并不多,我将所有的操作方法全部写在Main类中。后来,Main中的代码很自然地超出了500行的CheckStyle限制,这才建立了专门的操作执行类。随着课程的深入,也使用了继承、重写等操作。相比起过去的面向过程编程,这是很不一样的体验。
2.使用 Junit 心得体会
合理编写Junit可以从基础方法开始,逐步检验各级方法的正确性。但要想排查出全部的漏洞往往需要足够庞大的数据支撑,而自行编写覆盖率足够完善的数据无疑是件费时费力的事。所以我绝大部分的bug还是在测评中发现的……
3.学习 OO-Pre 心得体会
- CheckStyle:尽管大一就被告知代码在命名、空格等方面应遵循一定的规则,但在实际编写过程中往往只是做到能看就行。直到遇见 OO-Pre,在测评中加入了对代码风格的考察,这才开始认真对待此事。最终 OO-Pre 的项目代码确实比此前写的“好看”了许多。
- 面向对象:面向对象的编程模式很注重代码的模块化,各个类仿佛独立的个人,每个人只管理自己的物品,只负责处理自己分内的事,并将信息传递给别的类,最终达到分工合作,完成任务的效果。模块化做的好的项目,在新增功能时,几乎不需要对已有的代码做修改,只需增加新的类、方法等。同时,继承、接口等操作也使得代码更加简洁,整体架构更加有序。
4.对 OO-Pre 的简单建议
- 希望中测时,能把分支覆盖情况分散到不同测试点中。有时十个测试点中只有一个测试点涉及到bug所在的分支,而这个测试点还是输入输出不可见的,即使自行编写了多个测试样例,但还是没找到bug所在,很痛苦。
- 另外,强测可能需要加强(),有时基础功能(非极端情况)出错了也能满分通过,结果下一次作业时因为上次作业未发现的bug无法通过,对着当次作业新增的功能反复检查也不会有任何发现。
总结
总的来说,OO-Pre让我收获了很多:用上了IDEA这样现代化的IDE,对于Git的使用有了更多了解,学习了面向对象的编程模式……感谢助教及课程组的付出
相关推荐
程序设计语言的OO特性调研报告 1
所有预定义类型皆对象(All pre-defined types are Objects):这意味着语言中的基本数据类型,如整数、浮点数等,都被视为对象,可以执行对象的方法。5.
剑桥少儿英语KB1,KB2教案.pdf
四、音标学习oo/ ?/ 如book, good中的发音和ee/i:/ 如green, meet中的发音,帮助孩子们正确发音,建立音素意识。五、PEP练习1.
NOIP2010复习资料大全
```pascal fillchar(bool, sizeof(bool), false); f[1] := 0; f[I] := +oo (1 < I <= n) for I := 1 to n do
pip-matplotlib-3.8.0rc1.tar.gz.zip
数据可视化领域最核心、最成熟的库之一,其功能覆盖二维矢量图形绘制、光栅图像生成、交互式图表渲染、多后端输出适配(如 Agg、TkAgg、Qt5Agg、WebAgg、SVG、PDF、PS 等)、面向对象绘图接口(OO
AUTOCAD快捷键大全
AUTOCAD 快捷键大全在 AUTOCAD 软件中,快捷键的使用可以大大提高绘图速度和效率。下面是 AUTOCAD 快捷键大全,涵盖了从基本绘图到高级编辑的所有命令。基本绘图命令* A: ARC (


