一、作业架构设计
在总体上,Main类解决的是输入、输出等内容。为了方便管理,我设计了Guys类,统一管理ID到Adventurer的记录,以及战斗记录的相关内容。我使用了继承解决了不同的食物、装备和药水瓶的类设计,使它们便于装入容器当中,并便于处理。在战斗日志方面,我设计了OneFight类和Fightlog类分别管理单次的战斗记录和多次的战斗记录,并在类内进行查询,使得结构较为简单。以下是主要的类与容器的架构图:
二、Junit开发
在Junit测试开发当中,我学习到了很多关于覆盖率的检查方法,包括分支覆盖率、行数覆盖率等。在各次作业的开发当中,我用的最多的方法还是构造较为完整的数据以及利用题目当中给出的现成的数据构造测试方法,将未测试到的冷门方法设计专门的测试。
三、面向对象先导课程心得体会
这次的面向对象的先导课程给了我非常多的学习和练习面向对象编程的机会。之前的两个学期学的都是C,主要是面向过程的编程,所以这种面向过程的开发方式也给了我在前期的Java开发当中的一些误区,比如让类和类之间的耦合变得过于紧密,使得修改功能变得较为繁琐。
但是,随着开发的不断深入,作业的迭代版本一次次向前推进,我很快发现了这种开发方式的问题,因此在整个代码体系不是很繁琐的时候就开始着手修改并重构一些类的结构,使得整体变得较为容易修改。
而且,oopre课程给我印象当中比较深刻的是代码风格的检查。方法行数的限制、每一行的字符个数的限制……这些不仅仅逐渐培养了我对于面向对象编程的逻辑,同时使我逐渐养成了良好的代码书写习惯,让我在逐渐增量开发的作业项目当中能够较快地寻找并排查错误。
四、对oopre课程的简单建议
1)增加学分,每周开发时间过于长,与学分占比不太符合
2)真的很不错!!