1.作业最终的架构设计, 在迭代中的架构调整及考虑
以上是最后一次迭代之后产生的代码文件。
在第一次迭代作业中,我们被要求实现一些简单的操作,当时新建了CLASSMAIN,BOTTLE,EQUIPMENT三个类,第一次实操面相对象编程,还有些不大适应,但是在完成本次迭代之后就感觉稍微上手,并且知道自己的知识短板,并产生了补齐短板的强烈兴趣。
在第二次迭代中,我在原有的基础上进行了扩展,并且采用了更加适合的输入方式,这使我的代码的适应性和可扩展性变得更好。
中间有一次,因为主函数内部的行数过多,于是就仅将读入的功能留在了主函数内,将其他的操作全部抽离,并且每一种操作写一个函数,这时,我的代码架构变得更加清晰了。
在后来,学习了接口和继承,代码的可扩展性变得更强,这时我对三种特异瓶子,三种特异武器都进行了继承,并且对这几种类也实现了接口。
可惜的是,在最后一次迭代时,因为之前的架构已经不好改成工厂模式和观察者模式了,因此仅仅是新建了store类来解决问题,这也造成了最后的很多的重复代码段,希望在下学期oo正课中开始就能有这些面向对象编程的意识,以及时规避以上的问题。
2.使用junit的心得体会
在本学期中,我第一次接受到测试代码的概念,一开始不知道怎么写,但是后来越来越熟练。在提高覆盖度和分支度的时候总是绞尽脑汁想数据,这也让我明白了代码的可靠性是要去穷尽每一种可能并且没有问题。
3.学习oopre的心得体会
(包括但不限于从面向过程编程过渡到面向对象编程的体会)
本学期的oopre让我提前接触到了面向对象编程的思想,并且通过几次的迭代开发初步掌握了JAVA语言的多样性,体会到了JAVA的强大。
从上个学年学习c语言,一直都是面向过程的编程思想,在当时编写很长的代码段能够产生很强的成就感。但是当时看到**荣耀这种游戏就会想,如果是我,我会怎么写出来这样的游戏,但是最终草草了之。知道这个学期接触到了面向对象编程的概念,我才对这个问题有了一个较为明确的方向:就是利用面相对象!所以说,面相对象的核心思想就是以对象为中心,模块内只实现自己的功能,降低耦合度。
4.对oopre课程的简单建议
(不多于两条)
建议的话首先表扬一下助教们,太牛了!然后就是希望老师的PPT能不能多一点样式,感觉有点太简约了(😓)。