OOP课程总结啦啦啦

彭子豪-23373390 2024-11-09 17:36:25

最终架构

img

我的整个架构中的个数并不多,仅在前几次迭代给BottleEquipment 增加了几个子类,并没有对战斗、副本等操作增加新的类或者接口,而是全部集成在了Adventure类中,可能实现上简单,但是这样导致我的Adventure类过于臃肿,其下的子方法过多

img

这样不利于调试和增量开发以及类和方法的复用,归根结底还是有点懒,懒得折腾,直接在Adventure类下写一个方法得了🫠

以后还是要多多改进

迭代调整

Mainclass中的每一种操作增加对应的case方法,传相应的参数进去。这样使得整体结构较为清晰,也不会超过方法的行数

img

使用Junit的心得体会

1 使用Junit可以很方便快捷地进行单元测试,从而知道一个方法是否正确执行,这样可以让我们在整体运行测试之前,先对各个单元进行充分测试,很有效地降低了测试的难度。
2 同一类方法可以copy一些语句,比如测试Bottle类的许多方法,都需要我们先实例化一个饼子,这时候就可以写一个通用的模版,从而节省时间
3 不同的类测试有先后顺序,应该先测试基本的独立的方法,再测试需要调用该方法的方法。

OOpre心得体会

在本课程中,我经历了从面向过程编程(POP)到面向对象编程(OOP)的转变。这一转变让我对编程有了更深的理解。

1 从前我们写C语言程序,通常会注重过程,也就是一系列按顺序执行的步骤。程序通常是围绕“做什么、怎么做”来设计的,主要通过函数来组织代码
2 但是OOP要求我们把问题抽象成具有属性和行为(方法)的对象,并让这些对象之间进行交互。这种方式更加贴近我们对现实世界的认知,我们所要解决的问题也更加切合实际,比如指导书中的宠物店、迭代中的类似原神的冒险者游戏,都很贴近我们的生活
3 从面向过程转向面向对象时,最大的挑战是要学会将问题抽象为一个模型,而不是简单地按顺序编写代码。(本课程中这一点指导书已经帮我们完成了)这种抽象能力的提升可以帮助我们更好地组织代码的结构,有一个全局的掌握,并提高代码的复用性和可扩展性
4 面向对象编程真正让我感受到“模块化”的威力。当项目规模变大时,面向对象的设计方式使得整个系统更容易理解和扩展,同时,由于封装性的提高,对象内部的修改对外部代码影响较小,代码的可维护性也大大提升

建议

1 希望能够指导书的知识讲解与题目分隔开,从而更加清晰
2 指导书中,对于一些比较绕的文字表述,希望能够提供一些例子来具体说明,有时候纯文字确实有点抽象

最后,还是喜欢这门课的,绝世好课呀😁

img

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

275

社区成员

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

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