244
社区成员
发帖
与我相关
我的任务
分享
在Main中读取到输入,然后转移到dotask类进行输入处理,Adventurer类进行相应的操作。
第二次作业:最开始在Main中直接处理输入,完成操作,可扩展性较差。
第三次作业:对Bottle类进行了重构,设置了四个子类对Bottle类进行继承,添加了接口Usable,同时新建Dotask类把输入处理从Main移出。这时候由于感觉物品较少,背包的管理还是在Adventurer里实现的。
第五次作业:对Equipment进行了重构,同时设置Bag类来管理物品,添加Factory来管理各类物品的生成,降低耦合度。
第六次作业:增加Follower和Leader的接口
第七次作业:架构上没有什么调整
开始时我认为这种测试方式不如直接输入数据然后比对输出更加方便,但随着迭代次数增多,每次迭代后可以在原本的Junit上添加或修改,比手动输数据更方便。并且覆盖率的显示可以清晰的看到自己哪里没测试到,debug也更加方便。
Junit还影响了我的思维模式,在测试时如果想提高分支覆盖率,就必须考虑到多种特殊情况,从期望结果向上考虑,这种思考让代码更健壮。
随着代码迭代,每次架构调整都需要同步更新测试代码,这也让我意识到代码架构的重要性,低耦合的设计才能更好地维护和测试。
在学习本课程之前我没有接触过java,习惯于用面向过程的思维,关注程序的执行流程,而在学习之后,我逐渐学会了从"对象是什么"的角度思考问题,在设计阶段先识别系统中的对象和它们的职责,关注对象之间的关系而非执行流程。同时,本课程的学习也让我深刻体会到了java语言在大项目开发上具有的优势。