242
社区成员




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
需要一定的适应期,建议作业代码量循序渐进。