2023BUAA-oopre结课总结

陈思潮-22373112 学生 2023-11-05 18:05:38

2023BUAA-oopre结课总结

作业的架构设计

迭代中的架构调整及考虑

  • 在前三次作业中,我没有设置manager类,而是将大量的静态方法写在Main类中,并且很多静态方法包含了从输入端读取数据的操作,造成的问题是:1、Main类过长。2、很多方法因为包含读取操作,不方便写junit测试。

  • 在第四次作业时,我将读入操作单独拎了出来,将读入的结果写进数组中,传给操作函数,操作函数对数组中存的内容进行处理后,把参数再传给各个方法,有效的解决了我的问题2

  • 在第六次作业中,此时我的Main类和Adventure类已经接近500行,所以我又做了一次架构的调整,单独设置了一个manager类,来管理Main类中原本的一些静态方法,同时设置Command类来分担Adventure类的压力

  • 以上是我做的比较大的调整,其余的调整都是根据新的任务指令,按要求增加类,子类,接口。

使用junit的心得体会

  • 诚实的说,难用是junit给我最深体会,junit在本期的学习中,几乎没有给我任何的帮助,造成这样的原因如下:

    • 大部分的错误会在报错的指导下和对中测的debug中解决

    • 对于题目并不能把握到此题的边界情况和特殊情况是什么,手捏的数据没有针对性

    • 数据纯手编,耗时量还少

  • 每次写junit都让我头疼,因为你不只是收捏数据那么简单,你还得自己去吧数据会调用的函数写进test里,一点也不方便 但是后来,通过向其他同学取经,我在test中调用Scanner对象时,把它指向一个String in , 然后直接 往in里添数据就行了, 实在是方便多了

学习oopre的心得体会

  • Java中方便的方法调用,让我能把更多的精力放在架构设计,去思考哪一些的指令该交到底层去执行,封装好在传上来,去思考这个任务我该把它分成几个对象,每个对象要解决的问题是什么,而不是像之前的C语言一样写成了一个大杂烩。

  • 在学完子类后,我会去思考不同对象之间的关系,避免去重复的造轮子,保证代码的简介性

  • 在学完了接口以后,我回去思考,某一问题是否是关注不同的对象的共同属性,并且利用接口直接在原来的程序上拓展,避免了重新生成另一个新类,保证结构上的简洁性

  • 在学完工厂模式后,我意识到很多问题其实可以套用这些模版,将复杂的问题变得简单。

对oopre课程的简单建议

  • 我觉得可以教一教同学们如何造数据,不然junit真的很折磨

  • 上课的内容专业性术语,听得有些云里雾里的

...全文
56 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

242

社区成员

发帖
与我相关
我的任务
社区描述
2023年北航面向对象程序先导
学习 高校
社区管理员
  • YannaZhang
  • CajZella
  • C_ecelia
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧