2023 BUAA OOpre 的一点点冒险经历总结

一、架构设计,调整及考虑

在这里插入图片描述


(结构图)


Adventurer

  将实际操作的主要方法都在Adventurer类中实现,比较贴合人是实践主体的直观感受。

物品

  一开始是将所有物品都存在Adventurer下的hashmap中,在迭代中将其改为:将物品存于Bag类中,将Bag的实例存于Adventurer中。这样层次化更加明显,逻辑更加清晰。

战斗日志

  在处理战斗日志时,为保证一次运行中记录的所有的战斗日志保持输入顺序,在Cmd中创建了一个Arraylist来记录所有战斗日志,并创建了Diary类专门用来记录一条战斗日志以及实现其处理过程。同时,在Cmd中设置了一个变量index用于分割多次战斗日志。

指令处理

  将23条指令根据输入格式的差异进行划分,有效减少单个方法过长的问题,同时使指令逻辑显得清晰。

二、使用junit的心得体会

  我最开始的几次迭代没有特别注意利用junit对程序进行测试。随着不断迭代,代码量增大,方法数量增多,通过对着代码强行看出bug的方法变得困难。后来重新了解了一下junit,方才察觉到其便利之处。

  在程序出现输出结果出现问题的时候,通过对某一些相对较为复杂的方法进行测试,有效提高了寻找bug的速度。在我自己使用junit之后,我的感受是将输入简单化、具象化,是使用junit进行测试的便利之处。他类似于将程序拆分为一系列小的零件,我们可以先对这些零件测试,检查是否在零件这一层面就已经有一些零件出现了无法使用的问题。然后,可以把一些相关的零件组装起来,检查零件间是否适配,组合后功能是否正确。通过将程序拆分再组合,全面为程序做足检查。

三、学习oopre的心得体会

  在oopre这半个学期的学习中,我基本上是根据老师上课讲的内容,边学习,边在网络上搜寻一些不理解的内容,摸索着前行的。通过对看到的内容进行实际的应用,感觉获得了较好的学习效果。

1.模块化思想

  在oopre的学习中,我感受到了封装的便利与快乐。把相同的方法全部封装,把相似的方法集中到一个接口中,再加以合适的命名,令代码的可读性产生质的飞跃,降低修改难度。而且,通过将各种方法封装,在修改代码时能避免多处相同代码仅改了一部分的问题。

2.父类与子类,继承

  通过定义父类,再在其基础上定义子类,使代码的逻辑性增强,同时能简化一些操作,如药水进行操作,就无需判断其具体是哪种药水,仅需知道它是药水,并对药水类进行操作即可。需要实现新功能时,仅需新建一个子类,对父类中已有属性、方法进行继承,方便且清晰。

四、对oopre的一点小小建议

  如果每一次迭代(作业)截止之后,能够给出一些结构层面的代码样例,即一些框架模式的推荐,可以让我们能够多一点对代码结构的清晰的、正确的认识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值