BUAA OOpre 课程总结

写在前面: 一眨眼九周过去,面向对象先导课(以下简称 OOpre)也已经结课,一连五次迭代开发,这其中有 debug 的烦恼但更多的是中测强测都 AK之后的喜悦。这篇博客既是 OOpre课程的最后一次作业,同时也包含了我真实的内心所想,也是对自己这几周学习的一次总结。本人第一次撰写博客,也感谢 OOpre这门课给了我这个机会。


作业架构设计

在这里插入图片描述
注:Main类位于顶层用于接收输入,Command类用于操作分发,Adventure类用于实现相关操作

迭代过程中的数次调整:

  1. 最初我是在Main类中实现的操作的分发和调用,但到了第二次迭代的时候由于操作增加并且checkStyle限制方法不能超过60行,导致checkStyle出现了减分。于是我构建了Command类用于操作的分发和Adventure相关方法的调用。
  2. 第二次迭代时出现了bag这一概念,于是我增加了Bag类并将bag作为了Adventurer的一个属性。
  3. 第四次迭代时出现了Commodity的概念,并把Bottle等细化类型,于是我构建了Commodity接口,把Bottle、Equipment、Food、Adventurer接入接口,建立了Bottle等类的子类用于继承父类的共有方法。
  4. 第五次迭代时我建立了Store类并使用了单例模式。同时建立了Employee和Employer接口,把Adventurer接入,用于实现help方法。

Junit心得体会

首先在庞大的架构下找bug不是一件容易的事情,使用Junit确实能帮助我排除一些基本错误。但由于Junit是自己编数据,导致有可能会因为自身局限性导致bug找不全。整体上Junit还是帮了我很大的忙,但到后期逐渐力不从心。


OOpre心得体会

记得大一刚开始接触C语言的时候还纯纯只是一个编程小白,只知道还有许多其他的高级编程语言但并不清楚他们之间的区别。Java算是我第二门有系统学习的高级编程语言,也是从以C语言为代表的面向过程编程到面向对象编程的一次转变。面向对象编程的学习提升了我抽象概括的能力,同时也让我初步理解了一些大型程序设计模式的设计思路。

对我而言,我觉得面向对象编程是一个从具体抽象再到具体的过程。首先拿到一个project,把这些具体的object和method抽象成一个个class(类),设计类中的方法,这是一个具体到抽象的过程。然后顶层文件执行操作进行调用的时候进行实例化,服务于具体case的实际情况,这是一个抽象到具体的过程。

OOpre课程作业的迭代开发模式对我来说也很新颖,让我初步感受到了迭代开发的乐趣和烦恼。我终于理解了设计一个好架构是多么重要的事情~~(前几次迭代就因为架构问题进行了大改让我异常烦躁)~~,包括设计好一个Command类用于分发指令、Demo类用于调用相关方法,都可以让自己的架构变得合理,同时增加代码可读性。同时,一个良好的设计模式也能让自己的代码变得更加规范、更加高效,这都是我接下来的学习中仍需努力的方向。


对OOpre课程的一点点点点点小建议

  1. 关于git的指导书可以再完善一下吗,感觉到现在还不是很会用git,最初配环境的时候也一头雾水稀里糊涂的配完了,但实际开发的时候也没有主动使用过git的指令(也只有上传到仓库这种),所以建议完善一下git的指导书。
  2. 关于Junit的建议。感觉到了后期Junit使用下来已经比较鸡肋了,很多情况自己想不到自然也编不出相关的测试数据,写Junit更多只是为了拿分。感觉Junit可以调整一下,不作为一个得分项,只作为一个加分项(?)。

结语

感谢OOpre课程组的全体老师和助教,虽然只有短短九周课程,但这门课给我留下了非常深刻的印象,祝OOpreOO正课越来越好!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值