一、作业架构设计与调整
Main: 数据输入, 并进行处理;
Adventure: 冒险者类;
Warehouse: 仓库类, 管理冒险者拥有但没有携带的物品;
Backpack: 背包类, 管理冒险者携带的物品;
Battle: 战斗类, 管理战斗相关指令;
Fightlog: 战斗日志, 由Battle类实现;
Bottle: 药水瓶类RegularBottle, RecoverBottle, ReinforceBottle的父类;
Equipment:装备类RegularEquipment, CritEquipment, EpicEquipment的父类;
Food: 食物类;
Shop: 商店类, 单例模式.
中间重构过两次; 第一次对面向对象并不熟悉, 将容器全加上了get方法, 全都在Adventeure类中处理, 导致Adventure中很臃肿, 第一次重构处理了这些问题; 第二次重构时为了方便表示拥有与携带, 加上了仓库类与背包类, 进行处理.
二、使用junit的心得体会
-
第一次使用junit, 是与C语言调试不同的方法. 在使用过程中感受到面向对象的一个好处: 可以一个方法一个方法地检查, 更加精准地检查;
-
分支覆盖率是一个很重要的指标, 很多bug都是在为被覆盖的地方发现的;
-
但在很多状况中, bug是在多个方法的联合作用中出现的, 有很多样例不容易发现, 要学会自己写测试样例.
三、学习oopre的心得体会
-
最重要的的就是编程思想的转变. 开始时只会将所有操作放入一个类中, 并将其他方法当作函数使用, 代码十分复杂, 第二三次就有冗余的迹象了. 到后面转变思想后, 开始学习面向对象的思想, 代码变得简单些, 也体会到什么叫低耦合.
-
再者就是学习了Java语言, 学到Java语法, 并学习使用IDEA与Git.
-
第一次迭代开发一个项目,
提前看见自己未来写屎山的场景.
四、对oopre课程的简单建议
-
Git的使用还是不很熟, 可以加点练习啥的;
-
可以提前搞点团队开发啥的, 感受团队的力量与威压.