BUAA-OOPre-2023结课总结

BUAA-OOPre-结课总结

菜菜的博主在经过九九八十一难的OOPre的磨难(真是痛并快乐着),可谓练就了一番本领,下面对这个又爱又恨的课程进行一些总结,当然不是为了完成作业的啦!

下面是菜菜小樊的正文啦~

作业框架

如图所示
作业框架图

迭代的历程:

学习OOPre是一个循序渐进的过程,所以在这个迭代过程中,个人能力也在不断提高,虽然痛苦,但是快乐。

  • 考虑到每个Food、Bottle、Equipment都有自己的拥有者Adventure,故在以Adventurer为焦点,关联这三种物品,而面对逐渐增加的Bottle和Equipment的功能,通过子类对父类的Extend,达到丰富功能和细致划分的作用。
  • 面对雇佣这个操作,考虑到Adventurer和Adventurer的相互作用,故创建了新的类,即雇佣者系统,其中存放所有与雇佣相关的内容。
  • Commodity是一个价值体,它是Adventurer、Food、Equipment、Bottle的接口,通过Implement来实现。
  • 增加了商店这个模式,由于以往代码分类清楚,所以在商店中直接采用单例模式,来实现物品的购买和售出。
  • 为保证代码的风格和协调性,将Main主体用来读取指令和战斗日志,将Proposal类用来存放23种指令的方法,然后细分到各个与之关联的类中,达到简约清楚的目的。

思想汇报:

  • 基于面向对象思想的缺乏,以及首次接触Java语言带来的陌生感,还有工程代码量大,没有做好系统清晰的层次化管理。
  • 代码也没有按照高耦合低内聚的思路来构造,出现牵连现象严重,分类模糊,造成迭代过程bug丛生。
  • 有的类代码甚至存在过长的现象,通过实现功能分类和系统构造,将冗杂代码封装成新类,达到层次化的效果
  • 对工厂模式(三种工厂模式)的理解不够深刻,对imlement和extend的使用不够熟练。
  • 在Coding中有良好的一点是:对于变量和方法的命名,采取了合理且合法,英文命名的良好传统,便于菜菜理解吧。

Junit的心得体会:

真的太痛苦了,希望下一届学生也要试试菜菜的苦痛
凭心而论啊,Junit是个重要的调试工具,在找bug以及代码测试中起到了重要作用。

  • 通过自动化测试,能有效提高代码的稳定性和可靠性,避免迭代时以往的锅的问题出现
  • 为了提高代码覆盖率,可谓是认真思索 煞费苦心了,同时也发现了一些潜在的问题。
  • 思想觉悟得到提高,Junit在前几次作业的简单实用,让我掉以轻心的觉得是多此一举,但是随着功能复杂,不同对象的创建,不同类的方法调用,让我写Junit也一度自我怀疑过往的浅显认知。
总之,Junit是个好的自动化测试和调试的工具,在处理工程问题和迭代中起到重要作用。

OOPre的心得体会:

OOPre 可以说是一个绝世好课,它是我们OO的先导课程,为学习OO奠定了基础。(至于扎不扎实,因人而异)

  • OOPre课程是面向对象的先导课程。在我们接触编程,C语言是基本功,也是面向过程来进行编程的,而在这个面向对象的编程中,需要克服思想上的思维惯性。实现类与类之间的协调配合,方法之间的设置,方法和对象实例的使用,也是在这个过程中得到了充分锻炼。
  • 面向对象,也让我学会从顶层设计,定义好各个类的用处,以及不同类的协同。同时也要从底层编写,实现顶层框架。
  • 与其说我是写代码,不如说我是写BUG,真的好痛苦,这个过程也让我对自己代码有了清醒的认知和结构的划分。
  • 当然,美好的学习背后也充满着遗憾。由于过多的类与类的依赖和藕断丝连,让我没有经历,也没有勇气去大刀阔斧的重构我的代码。没事,遗憾也是一种美丽吧。
总之,OOPre使得我实现了从面向对象编程到面向对象编程思想的转变,也体会到顶层设计的重要作用。

对OOPre课程的建议:

  • 迭代中存在不用新知识的方法,建议可以让评测机实现检测新知识的功能。我已经结课啦

特地鸣谢:

在OOPre课程中,菜菜小樊过得比较痛苦,但是在室友和宁然助教的大力帮助下,成功渡劫!当然,感谢吴际老师的认真且魅力教学,以及课程组的背后辛勤付出!谢谢大家!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值