302
社区成员
发帖
与我相关
我的任务
分享
Adventurer 模块中含有对单个adventurer进行操作的所有功能与属性,如冒险者的药水瓶Bottles、装备Equipment、食物Food、以及冒险者的背包Package和战斗日志FightLog。当冒险者执行携带Carry指令的时候,将物品复制一份进入背包。同时Bottles和Equipment模块通过扩展是实现了模块的细化。Shop模块作为一个单独的商店模块,拥有自己的记录数组和处理方式。Operation模块是Main中直接调用的模块,根据从输入端口读入的指令的第一位数字分析指令的类型,并且实现对应的操作。同时,Operation中设置了AdventurerList,直接管理所有的冒险者。Main中只负责读入输入窗口内的内容,并且将输入的内容放入数组中,给Operation指令。整体来说,在整个设计流程中,对模块化的操作进行的比较好,整体的模块并没有因为类的行数超出或是函数行数超过限制而发生非常大的变动。
Bottles,Equipment,Adventure等模块,并且实现了简单的功能。Operation之中,但现在回过头来看,应该将输入解析单独作为一个类进行封装可能会更加合理些。Junit的心得体会Junit其实本质上就是一个对于每一个函数自己写的一个小测试,虽然说是有一定的麻烦,但是从工程建设的角度上看,Junit还是对整个工程的架构有很大帮助。最重要的一点其实就是检测每一个小函数与自己设计的想法是否符合。Assert断言来判断出是否函数出现bug,不需要面对整个庞大的工程一个个看;纵使是Assert断言的actual写错了也无伤大雅;但是另一方面,Junit的测试样例毕竟是自己捏造的,数量与范围、精度等都比较有限,并且想要覆盖面增大的话,其测试代码的工程量是比较大的,因此Junit感觉只能测试一些显著的bug(?)。Junit的测试是通过调用函数算覆盖率,所以导致通过测评可能可以伪装。但是话又说回来,这样对自己也没啥好处,为啥要这样干呢?Java语言,直接上来介绍可能速度有点太快了。比如第一次作业真的只能看着那个报错随便点点,根本不明白结构化的事情。所以我觉得可以拿出一节课详细地讲一下Java的语法。Java需要一定的适应期,建议作业代码量循序渐进。