一.作业的最终架构
1.最终设计belike:

貌似有点丑陋。而且有些地方有些混乱,至于为什么会这么混乱——
2.迭代。
##第二次作业##
一开始这个作业的结构非常简答(在现在的我看来),只有Adventurer、Bottle、Equipment三个类外加一个100多行的包含了各种函数实现和调用的Main
##第三次作业##
于是第三次作业我就傻眼了(指Main里面东西太多被覆盖率制裁),在AI的帮助下我学会在Main外边设置一个新的类Commander,让Main只作为一个程序入口
也是在这一次作业我开始写父类和子类,Item是Bottle和Equipment的父类,Bottle是HpBottle、ManaBottle、DefBottle、AtkBottle的父类
比较特殊(神人)的是,当时我并没有吧HealSpell和AttackSpell作为Spell的子类,而是直接在Spell内进行了一个判断并进行了后续的操作,现在看看只能说很幸运了后续作业没在这块做更多文章,要不然又会是折磨的重构(x)
##第五次作业##
这一次引入了金钱系统&需要更细致地规划一个冒险者拥有的各种武器和物品,于是我也跟着课上学到的东西加了一些HashMap映射,大概这样:
(其实我本来是打算在Adventurer里面开一个backpack的,但后来想想都分开写了,要不然查找的时候太麻烦了。)
private final Map<String, Bottle> bottles = new LinkedHashMap<>();
private final Map<String, Equipment> equipments = new LinkedHashMap<>();
private final Map<String, Spell> spells = new LinkedHashMap<>();
同时之前一直没怎么用上的Equipment这次也多了两个子类:Weapon和Armour,其中Weapon又有两个子类:Sword和MagicBook
##第六次作业##
这一次迭代要求规划冒险者之间的雇佣关系,于是Relations类堂堂登场,通过HashMap实现老板和雇员的映射,各种跟雇佣关系有关的操作我基本都是在这个类里面实现的
同时,这次作业我把之前那个Commander给优化了一下,改成了Game,最后Main被简化成了这样:
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = Integer.parseInt(in.nextLine().trim());
Game game = new Game();
for (int i = 0; i < n; i++) {
String line = in.nextLine().trim();
game.process(line);
}
in.close();
}
}
##第七次作业##
这一次作业就友好很多了,至少对我的框架来说,只需要加一个Lexer然后实现一下字符串识别,就可以直接套用自己第六次作业的add(Relations)函数了
二.JUnit的心得体会
你说这玩意谁研究的呢怎么这么好用.jpg
其实第三次作业第一次要求覆盖率的时候我还不知道这是啥,那一次我还是挺崩溃的,但后来发现这玩意是真好用,不用像以前写代码那样自己一点点设置断点,写点数据用JUnit塞进去就能测试了
唯一的疑惑是,有时候我的代码明明对了,我测试的时候它还是会给我报错,可能有点玄学吧,它过一会自己又好了(目移)
三.OOPre的心得体会
先说说代码风格罢,这玩意坑了我好几次,由于我经常忘开checkstyle,经常交上去代码之后风格分扣一大堆,但后来我发现这玩意真挺重要的,很多被标注出来的警告在某些极端情况下真的会导致一些奇奇怪怪的bug,虽然是少见的极端情况,但只要出现那必定又是少说几个小时的debug了
我大概不太擅长总结心得,但学完oopre倒让我对游戏有了更深刻的理解(x),正好今年丝之歌终于出了,我在打游戏的过程中,心态逐渐从“战斗爽”变成了“这几个小怪是不是用的同一个父类啊”、“这几个地形是不是也是同一个类啊要不然咋都能除debuff呢”,于是电子游戏对我来说就这么从一个黑盒变成了一个稍微可以理解一些运行原理的东西,这应该也算一种心得(?)
四.对OOPre课程的简单建议
oopre好难啊/(ㄒoㄒ)/,或者说是对于我自己的学习方式来说很难
我比较擅长抄袭(?),很多东西我都是抄一抄就会自己写了,但这个课我完全没地方找东西抄,很多Java语法的运用都有很多困难,所以我是比较希望课程组能提供更多代码作为例子的,现在的教程虽然也给了代码,但看懂那个代码和我自己会写作业又变成两码事了。
998






