1.架构设计和架构调整
最终架构如上图所示。设置了Adventure、Equipment、Bottle、Food、Manner、Store类,其中Equipment和Bottle按需求设置了3个子类。Manner类中有处理战斗日志和处理输入两部分的内容。Store类作为单例模式运行。
在整个oopre迭代过程中,我整体上根据作业的需求,按部就班的在原有代码的基础上进行扩展和小部分的更改。让我记忆深刻的一次较大规模的更改是因为Junit编写不便而将主函数中的输入改为教程中的二维数组输入模式,并且将输入处理操作单独作为一个类,以便在测试程序中测试不同的数据,经过这次调整,不仅能轻松满足代码风格要求,还使得代码更加结构化、层次化。
2.使用Junit的心得体会
在当前阶段,我虽然只会构造较为简单的数据来进行Junit测试,但是如果Junit的各个覆盖率都满足要求并且通过设置判断语句,至少可以说明程序整体上结构完整,没有显而易见的bug。通过设置判断,也可以更快速的定位到程序开始出错的地方,在这方面比直接调试要更方便。但是在实际操作中,我并没有使用过Junit(只是满足了作业要求),而是在出错后对比输入寻找错误,因为我并不会造具有相当复杂度的数据。
3.学习OOpre的心得体会
从面向过程到面向对象,我更加深刻地意识到在解决较为复杂的问题时不能“凭空造物”,而是认真思考问题,选择对应的模式,在编写程序时要注意通过封装、继承和多态实现程序的易扩展、易复用。同时我也认识到了“磨刀不误砍柴工”,在编写之前,一定要有设计思路草稿在开始动手。
4.对OOpre课程的简单建议
唯一的小希望是增加使用git的视频教程,当时使用git自学了很长时间。最后十分感谢老师助教的辛勤付出。