270
社区成员
发帖
与我相关
我的任务
分享整体的架构设计如下图所示

第三次作业
由于给Bottle类引入了具体的属性,将Bottle类和Spell类转换为抽象类,加入Usable的接口
本次作业重构中将MainClass简化仅作为程序的入口,单独创建InputHandler类负责处理指令流
第五次作业
同上将Equipment类转换为抽象类,加入Item接口
本次作业重构了Adventurer拥有的Bottle,Equipment,Spell对象,将ArrayList结构替换为HashMap结构,更直观更好查找
背包仍用ArrayList结构,由于涉及加入背包的先后顺序,HashMap不具备顺序
单独创建Factory类,将创造Item的方法写入
第六次作业
创建Employee和Employer接口,实现了雇佣系统
第七次作业
用递归下降思想创建RelationParser类,实现批量导入关系
在实际体验中我感觉JUnit的确能帮助de出一些最基本的逻辑错误,我采用的方式是直接构造一组样例,检测输出是否与要求相同,这样很方便的就能得知覆盖到的代码是否有bug
但实际中操作遇到的问题也包括一些不太容易触发的Branch很难构造样例,在这些犄角旮旯的bug反而用瞪眼法更好de,感觉还是对JUnit工具掌握的熟练程度不够
体会到封装类的好处,在每个单独的类只需要考虑上层的逻辑关系如何实现,而不需要考虑内部如何实现
接口和子类也让整个代码更有逻辑性,在迭代开发时更好上手
学习中遇到的问题在于大部分代码还是堆叠在某个类中,局部的代码更像面向过程编程,对面向对象的编程思想还没完全转变过来
一点小小建议,一些比较角落的情况处理应该说明再清晰一些,比如说作业中对于已经装备的Bottle和Equipment类,再进行ti指令时,第三次作业说明要求什么也不操作但照常输出,第五次作业要求不发生任何操作,在和舍友第六次作业对拍时才发现这个问题,虽然在测试中好像没有影响,但还是纠结了半天