北航面向对象程序先导课程总结

一、作业最终的架构设计以及在迭代中的架构调整及考虑

作业的最终架构设计的思维导图如上所示。在前几次迭代中,我做的第一次较大的整体架构调整是因为在main方法中代码行数超过了60行,于是我先将架构调整为在main函数里只做输入,然后另写一个方法进行读入数据处理和调用相应方法,后来我了解到之所以行数会超是因为代码的封装性不够好,于是我又将代码改为在mian函数中只做最基本的数据处理(只进行冒险者编号的数据处理),然后将携带信息的strings数组传入相应方法,大大缩减了mian函数的行数。

  第二次大的架构调整是因为Adventure类的代码行数过多,这是因为我没有将可封装的功能单独封装为类(比如背包)导致Adventure类没有清晰的功能,承载了过多的方法,经过反思我意识到在新加入功能之前必须详细地考虑各个模块功能的相关性和独立性,而不应该急于“强行”实现相应功能。每个类都应该有自己的“任务”,实现对应的功能,不同的类之间需要相互引用和“合作”来实现整体的功能,每个类内部不应该有过多的内容,这样会严重影响代码的可读性和整体思路的清晰性。这一点是我认为我在面向对象程序先导课程中所未能做好的一点,在未来的代码开发中,我一定会重点关注这一点。

二、使用junit的心得体会

  在java的代码开发过程中,封装性是一个重要的特性,封装性会带来很多好处,其中一个就是不同的模块相对独立,而每个模块内部的内容不多,于是在debug的过程中就可以先从最细化的小模块查起,而不会对着几百行的代码茫然无措。而junit就可以帮助我很好地检查每一个方法是否能实现我希望实现的功能。写junit时,可以任意指定相应方法的输入,并且可以查看相应的输出,来检查在可能的数据输入中我的代码是否会出现问题。如果是整体代码的数据,出现bug就会难以定位问题具体出现在哪里,写了junit来检查每一个方法的功能就可以规避一些难以发现的bug。我认为junit是非常实用且必要的。

三、学习oopre的心得体会

  在从前的学习过程中,我所接触的编程都是面对过程编程,重点关注功能的实现,并不特别强调功能的封装以及代码风格。在学习oopre课程初期,我感到很不适应,但是逐渐我意识到代码的封装性扩展性等的实用价值和现实意义,也意识到了代码风格的重要性。学习了这门课程后,我也对面向对象编程有了初步的了解和认识。

  我认为,想要学好面向对象编程,需要大量的尝试和试错,在经历了痛苦的大框架调整之后就会印象深刻地记住封装性的重要性,但同时与同学交流、学习优秀代码也是非常重要的,了解到一种更好的实现方式往往会扩展我的思路,提供新的灵感,对课程产生更深入的理解。

四、对oopre课程的简单建议

  我觉得oopre课程是一门让我收获很大的课程,老师上课讲解得很耐心而详细,助教答疑也非常及时和认真。我个人感觉有几次迭代有些难度,在时间紧迫的情况下容易着急而无法得到最佳的学习效果,建议可以将较难的迭代拆分一下,然后整体课程多加一节(比如可以上到第十周)。以上仅仅是我个人的感受和建议。真的非常感谢老师、助教还有许多同学在这段时间里对我的帮助。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周铭坤-22373193

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值