北航oopre课程总结

架构设计

首先放上我的架构设计图

随着迭代的不断进行,我也在不断调整优化我的架构设计,一开始由于任务较少且我对Java了解学习不足,我把所有任务尽可能地塞进Main里,后来发现这样做无论是可读性还是可扩展性都很差,到后面指令慢慢增加以后,Main会非常拥挤且难看,出了Bug还不好找。于是乎我就逐渐把方法拆开,属于哪个类的方法就放到哪个类里,尽量避免Main类的拥堵。

对于较大的操作比如14(战斗模式),我一开始将它们全都写到一大个方法里,后来发现出了bug非常难找,而且远远超出60行的方法上限。于是乎我将三个不同的操作(喝药水,单个攻击,群体攻击)分开,拆成三个不同的方法,这样易于调试也便于观看和修改。

我后面的每一次迭代就基本没有修改原有的代码了,这还是很让人舒服的事情,这跟我及时调整架构有很大的关系,如果我一开始为了贪图本次作业的方便而不管后续作业新增的需求,~~我都不敢想象我后面会多难受。~~所以良好的架构是一份好代码的基础,从oopre这门课上,我从一开始的对整体架构、对面向对象语言一窍不通到拥有了自己的初步架构,逐步转变优化架构模式,让我对一门新语言有了全新的认识。

以下是我最终的类设计。(由于最后作业对工厂的要求不高我就选择了简单工厂模式。)
在这里插入图片描述

juint的心得体会

起初我对作业中juint的要求十分不解甚至厌恶,后来我才明白老师和助教们的良苦用心。
一开始写的juint后面可以继续用,在此基础上对后续方法进行测试。
我一开始只是为了应付juint覆盖率测试而写的juint,知道我战斗模式那次作业,有一个bug始终没de出来,按照惯例我会肉眼将它找出来后再写juint混过测试,这次我却听同学建议先写了juint,结果在一组数据的运行过程中就出现了报错,我也就顺藤摸瓜找到了错点,这使我对juint测试有了全新的认知,自此我的作业每次juint测试都会认真编写,根据作业要求覆盖尽可能多的情况,做尽量全面的测试。这也使我的每一次强测都满分通过,感谢同学和助教的提醒,感谢juint测试。

学习oopre的心得体会

首先学习oopre确实让我感觉到了从面向过程编程过渡到面向对象编程的区别,起初我只是能感觉到二者有区别,却不能感受到区别是什么。经过了半个学期的学习,我能体会到面向过程编程关注整体流程,各部件各司其职,为整体争取的运行努力,大家形成配合,为整体争取的运行努力,最终形成流程明确的程序。而面向对象编程主要关注每个对象自己干什么,管好自己的数据和方法,只负责自己的部分处理,并把其他类的需求提供出去即可,隐私性较强,模块化处理。且每个方法很短,提供很小的职能,经常会将方法封装。

oopre让我对程序的整体设计有了全新的认知,写程序需要先思考整体架构,而不是一上来就哐哐敲代码,最后既难懂又容易出错。只有整体构思是好的,程序才可能是好的。

它还教会我不能总依赖外部,要学会自己根据任务做好测试,而不是总依赖评测,因为数据很可能不全面,导致盲目相信自己的程序是正确的。所以一定要做好本地测试。

最后它还锻炼了我的自学能力,独立思考能力,我通过这门课学习到了一门全新的语言,且每次作业都从指导书中学到很多内容,也通过作业锻炼了自己的思考能力。

对oopre课程的简单建议

最后再谈一谈对课程的小小建议吧。

第一个是一上来教的内容太少了,第一次作业基本是凭感觉改的,上课语法相关问题讲的很少,java语法一开始全靠自学,希望上课或者第一次指导书中多进行这方面教学,让同学们对java有初步了解。

第二个也谈不上建议,一点小小看法,课程的时间安排还算合理,因为学期前期计组强度没那么高,一周还是能拿出两三天时间写面向对象的,不知道如果课程拉长战线到两周一次,作业强度小一点但是一直到学期末会怎么样。不过这样可能学期后期压力会比较大,至少现在的课程安排还算是合理的。

感谢老师和助教的帮助!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值