OOPre课程学习总结

潘珈霏-74066215 2025-11-15 15:04:26

目录

 一、作业最终的架构设计

 二、使用JUnit的心得体会

三、学习OOPre的心得体会

四、对OOPre课程的简单建议


 一、作业最终的架构设计

最终架构

经过一学期的迭代开发,我的冒险者管理系统最终形成了这样的架构:

核心类结构:

- Adventurer:冒险者类,管理个人属性、物品和状态

- Bottle及其四个子类:管理不同类型的药水

- Equipment及其三个子类:管理装备系统

- Factory:专门负责创建各种物品

- Lexer/Parser:处理复杂的lr指令解析

迭代历程与思考

第2次作业:搭建基础框架  

初次接触面向对象,建立了Adventurer、Bottle、Equipment三个核心类,主要学习使用ArrayList管理对象间的基本关系。

第3次作业:引入继承体系  

将Bottle重构为抽象类,建立完整的药水继承体系。我尝试通过Usable接口来统一药水与法术的行为。

第5次作业:应用设计模式  

第五次作业中引入工厂模式后,物品创建的复杂度得到了有效管理。同时采用HashMap替代线性查找,大大提升了系统的查询性能。

第6次作业:处理复杂关系  

管理雇佣关系,通过递归算法实现自动援助机制,我认为这是最具挑战性的一次迭代。

第7次作业:算法实践  

实现词法分析器Lexer和递归下降解析器Parser,弄明白了编译原理的一些基本概念,调试过程艰难但收获满满。


二、使用JUnit的心得体会

一开始会觉得"为什么要写测试?直接运行不就好了?"

后来才发现:  

-测试帮我抓住了深克隆的bug  

-边界情况不测试真的会翻车  

-写测试的过程就是在梳理逻辑

现在:写完代码第一件事——写测试!!!


三、学习OOPre的心得体会

我学会了不是把所有代码都堆在一起,而是把不同的功能分给不同的“小管家”,让每个小管家管好自己的事情。

从最初的过程式编程习惯,逐步转变为以对象为中心的思考方式,慢慢体会到封装、继承、多态这三个概念在实际编码中到底有什么用。

在具体实践中,我通过构建药水系统的继承体系,体会到代码复用的优势;在实现工厂模式时,认识到集中管理对象创建逻辑的重要性。这些经历让我对怎么把面向对象设计得更好有了更深入的理解。

在代码规范方面,我经历了从忽视到重视的转变。初期代码中存在方法过长、命名随意等问题,给调试和维护带来诸多困难。通过不断改进,我学会了合理拆分方法、规范命名约定,因此代码变得好读多了,改起来也方便不少。

从第一次作业连语法错误都修得磕磕绊绊,到如今能设计递归下降解析器,这学期的进步超出了我的预期。最后,这门课让我明白,好的代码不仅要能运行,更要易读、易维护。


四、对OOPre课程的简单建议

希望课程开始时能有个Java语法速成班,对于没学过Java的同学来说,起步确实有点吃力。


完结撒花~~~🎉

这学期的OOPre让我收获满满。面向对象不只是写代码,更是一种思考方式。感谢老师和助教们的辛苦付出!!!

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

271

社区成员

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

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