2023 OOPre 课程总结

郭俊杰 -22371240 学生 2023-11-10 17:25:49

最终的架构设计

 

  •  Main 类只负责调用Manager类读取并处理输入。
  • Manager 类负责读取和处理输入,在其中维护了冒险者集合,战斗中冒险者集合和战斗日志集合。
  • Fightlog 类负责存储战斗日志,处理战斗日志的输出。
  • Commodity 接口由Adventurer, Bottle, Equipment, Food类实现,方便进行统一处理。
  • Store 类使用单例模式构造, 负责处理物品的买卖。
  • Adventurer 类调用了Bottle类,Equipment类以及Food类,负责冒险者的主要操作。

迭代中的架构调整

  • 最初的代码将所有的读取和处理操作放在Main类中,导致类内方法职责杂糅,代码量过大。于是新建Manager类用于处理输入的相关内容,Main类只负责调用即可。
  • 最初日志的处理直接放在Manager类中,不便于使用,于是新建Fightlog类处理日志的任务,方便调用与存储。

使用junit的心得体会

最初使用的时候认为用处不大,后来发现在数据量过大的时候通过输入逐步调试的方法效率过低,这时候junit的优势就体现出来了。

  • 使用junit可以直接调试某个方法的正确性,避免了按照输入格式构造测试数据的繁琐的过程。
  • 在junit中可以方便地构造边界数据,以确保代码在极端条件下仍然正常运行。

学习oopre的心得体会

  • 在面向对象编程中需要思考问题中的属性和行为,并尝试将其抽象成类和对象。在这个过程中提高了抽象和建模的能力。
  • 在面向对象编程中需要思考和应用设计模式,以便更好地设计和组织代码,使得代码更加健壮和可维护。
  • 通过使用继承和多态,使得代码的复用性更高。通过继承,可以基于现有的类创建新的类,而多态性则允许不同的对象对相同的消息作出不同的响应。这提高了代码的灵活性和可扩展性。
  • 最后,在面向对象编程中,我不再仅仅是在处理一系列的步骤,而是在处理具有一定状态和行为的实体。更好地反映出真实世界的问题,使得编码更加直观。

对oopre课程的简单建议

建议能在课程中更多地介绍junit的高效的使用方法,方便同学们更快地掌握。

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

301

社区成员

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

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