作业最终的架构设计, 在迭代中的架构调整及考虑
Commodity:
价值接口,统一管理Bottle,Adventurer,Food,Equipment
Adventurer:
集中了大部分跟冒险者有关的功能,调用或修改冒险者拥有的物品
Bottle,Equipment:
具体的物品类别通过继承父类实现
Store:
存储卖出物品历史记录,并给冒险者提供物品
Main:
主要包含了输入,和调用不同的的指令
同时以HashMap<String, ArrayList<String>> logdata
的形式存储并查询历史战斗日志,没有新建一个战斗日志类,显得较为臃肿
将23条指令由于行数限制放在了两个方法里,通过引用对象来实现调用,比较强行拼凑,应该需要改进
在迭代中的架构调整及考虑
迭代中并没有经过特别大的结构调整,基本都是在原有结构上修改,Adventure类比较臃肿,到达了450行,其中对于bottle,equipment,food的方法大多是非常相似的,比如增删改查,但是由于精力原因没有修改,应该可以提取成一类方法。
使用junit的心得体会
Junit确实是一个有用的检查代码逻辑错误的方法,但是后期感觉测试某个指令,需要前面为这个指令做很多准备,并不是那么方便,最后只是通过实现方法调用而不检查来拉高覆盖率,没有真正让他发挥真正的作用,对Junitti的编写没有很清晰的思路。
学习oopre的心得体会
- 面向对象编程在于要抽象出对象,然后用对象的各种方法实现目标
- 要把不同的操作拆分组合到各个类的方法里,可以比较清晰的实现某个功能,比较方便检查思路
- 要善于提取共性特征,利用好继承和接口,可以更加方便地管理,并且利于检查,结构比较清晰
对oopre课程的简单建议
- 可以更详细讲讲使用git合作开发
- 对于Junit的编写逻辑可以用实际样例加深理解,如果能有搭建评测机的教程就更好了()