2023 OOPre 课程总结

卢裕轩-22371014 学生 2023-11-08 01:21:19

目录


架构设计与迭代过程中的变化:

  • 最终架构:

img

  • 迭代过程中的变化:

    对整体架构产生较大影响的迭代变化有两类:增加新的类增加接口.

增加新的类

  1. 起初的架构设计中,并没有 Method 类,但随着不断迭代,需要处理的指令越来越多,如果依然选择将处理指令的过程放在 Main 类中,则会导致糟糕的代码风格,降低代码的可读性,拿不到checkstyle的分数,因此笔者选择新增 Method 类;

  2. **后续的迭代中,为满足题目要求,笔者又陆续新增了 RegularBotRecoverBotReinforcedBotRegularEquCritEquEpicEquShop 类,值得一提的是,笔者使Bot相关的三个类继承 Bottle 类,使Equ相关的三个类继承 Equipment 类,这有助于减少代码的冗余,且方便统一管理;同时,笔者采用单例模式实现 Shop 类,这可以保证程序执行过程中 Shop实例 的唯一性;

增加接口

笔者定义了Commodity接口,并使AdventurerBottleEquipmentFood 实现该接口,这有助于所有价值体的统一管理。


使用Junit的心得体会:

  1. 方便更精准地定位Bug位置。通过构造相应的测试用例,可以将Bug位置精确到某个方法;

  2. 不可过度依赖Junit。很多时候,Bug是由于编程者错误理解了需求导致的,这靠Junit显然是不可行的;此外,一些很细微的错误,在构造的测试数据覆盖水平有限的情况下,是很难通过Junit发现的。归根结底,提高编程能力才是避免Bug的最佳路径。


学习OOPre的心得体会:

  1. 第一次接触面向对象类的语言,真的时常惊叹于Java的便捷易懂。面向对象的设计模式,极大地简化了编程者的工作,有助于减少Bug的产生;这种模式也十分方便程序的迭代,不论是同一位编程者在不同时间的迭代,还是不同编程者之间的合作开发,Java的清晰明了的特性都大有裨益。暴打C语言好吧(doge)

  2. 架构设计乃重中之重,所以一定要好好设计。一方面,好的架构有助于减少代码量,也有助于使代码模块化,低耦合、高内聚,方便了个人;另一方面,好的架构让人一看就懂,便于后续对代码进行增删修改。具体建议:有意识地将不同的Class分类,比如,管理类、执行类......


小小建议:

引导学生多多使用OO平台的讨论区,而不是在微信课程群里提问,这样有助于统一处理共性问题,方便学生,也方便助教和老师;

img

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

301

社区成员

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

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