2023BUAA-OOpre课程总结

OOpre作业总结

代码最终整体架构与迭代调整

代码最终整体架构

请添加图片描述

其中,Commodityinterface, Adventurer, Food, Bottle, Equipment为其实现类;

BottleRegularBottle, ReinforcedBottle, RecoverBottle父类,

EquipmentCricEquipment, EpicEquipment, RegularEquipment父类,实现了一个父类管理多个子类。

下图展示了重要类的部分方法:请添加图片描述
请添加图片描述

迭代调整

在最终架构中,实现代码模块分层管理,使得各个代码模块及功能较为清晰。

在数次迭代中,主要通过加入新方法与新模块,而非修改原有方法与原有模块。例如,在实现”加入战斗模式“的要求中,通过加入Fight类,实现对战斗模式下各个信息的管理;又例如,通过Input类管理程序的输入,其中包含各个指令的输入与fightlog的输入,使得程序主函数清晰明了。

使用junit的心得体会

在我看来使用Junit进行测试,的确具有很大优势,但也有一定局限性,因为——

  • 首先使用Junit需要我们对题意具有100%的正确理解,否则使用它只会导致让我们漏掉本来可能发现的bug,认为那儿是完全没问题的。
  • 其次使用它进行编写,真的非常烦——尤其是当你还需要保证覆盖率的情况下。
  • 对于较多方法组合使用,其实使用它进行测试,效果有时候并不那么好。
  • 如果程序是需要输入输出时,那么使用Junit就会显得非常麻烦。(当然也完全可以实现

但是总的来说,边写代码边进行测试还是一个值得遵循的准则,因为这样帮助我规避了很多本可能发生的bug;当然也有几次没有先写,后来发现,果然出了bug。(导致找bug的时间远长于写测试的时间……[哭]

学习oopre的心得体会

学习面向对象编程,给我印象最深刻的就是,仿佛我的开发速度与代码量像火箭一般提升了[得意]。

当然这本身就是面向对象编程的特点,其可以开发工程量较大的项目。通过类的分装使得整体思路清晰,结构明确。

在OOPre的学习中,发现对代码良好的设计还是极其重要的。前面考虑、设计不慎,后面必然会为之买单——以数倍的时间debug。

其次,我个人认为最重要的一点——仔细审题——我几乎所有的bug都是出在审题上,而且这种bug极其隐蔽,在数据量大的情况下,还没有发现任何debug的好方法。所以,不如刚开始就把题目理解透了,后面会省不少事。

对oopre课程的简单建议

  1. 建议前期学习梯度放缓一点,这样有足够时间熟悉面向对象的设计模式;否则容易前期由于不熟悉而导致代码质量差,导致后期难以迭代。
  2. 谢谢老师与助教的付出!否则这门课的学习曲线可能会更加刺激~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值