OOPre课程的收获与反思

24371407-程子涵 2025-11-16 23:58:33

一、最终架构设计与迭代调整

架构设计

物品装备系统

(1)Equipment ← Armour、Weapon ← Sword、Magicbook

(2)Bottle ← HpBottle、AtkBottle、DefBottle、ManaBottle

(3)Spell(法术)

管理类

(1)Adventurer:管理冒险者状态(生命/攻击/防御/魔力/金钱)、背包系统(武器×1、护甲×1、药水×10)、雇佣关系(上下级)、战斗逻辑

(2)Library + Bookshelf + Book:图书馆管理系统,支持书籍魔法属性计算

工厂创建模式

由Factory.createBottle()、Factory.createEquipment()、Factory.createSpell()统一创建接口

迭代调整

1、引入Item与Use接口
初期物品管理分散,后期用Item和Use接口统一了物品的携带与使用逻辑,减少了代码冗余。

2、背包系统重构
最初使用List管理物品,后来改为Map<String, Item>结构,并针对不同类型物品设置独立容量限制,提升了存储与查找效率。

3、工厂模式的应用
随着物品类型增多,引入 Factory类统一实例化逻辑, 大大减少了代码量。

4、递归下降解析指令
面对复杂的 lr 指令,使用Lexer和Parser进行语法分析,实现了批量雇佣关系的建立。

二、使用JUnit的心得体会

初次接触JUnit时,我对其繁琐的测试流程感到不解——明明可以直接运行程序看结果,为何要大费周章地编写测试代码?然而,随着项目迭代的深入,我逐渐领悟到JUnit的价值所在。传统的调试法容易在重重调用中迷失方向,而特定的调用不仅方便检查,更是极大地提高了查错的效率。更让我惊喜的是,JUnit 改变了我的编程思维。现在编写每个方法时,我都会预先思考:这个方法应该接受什么输入?会产生什么输出?边界情况如何处理?这种“测试驱动开发”的思维,让我的代码变得更加健壮。

三、学习OOPre的心得体会

在接触OOPre之前,我习惯于用C语言的面向过程思维编写程序:函数调用函数,数据在各层之间“裸奔”。而OOPre让我逐渐理解,可以让每个对象负责自己的状态和行为,通过外部接口访问。记得第一次作业,我将所有的代码都放入Adventurer类,虽然功能实现了,但代码却显得又臭又长。直到学习设计模式后,我才恍然大悟:原来优秀的代码不是简单地实现功能,而是要构建清晰、灵活的结构。

从最初的功能堆砌,到现在的架构设计;从面向过程的思维定式,到面向对象的抽象思维,这段学习历程不仅让我掌握了 Java 编程技能,更培养了我系统思考和模块化设计的能力。这些宝贵的经验将成为我未来软件开发道路上的坚实基础。

四、对OOPre课程的简单建议

希望在课程中能多提供一些优秀的设计,帮助大家更好地理解如何编写程序。

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

270

社区成员

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

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