271
社区成员
发帖
与我相关
我的任务
分享一、最终架构设计与迭代调整
架构设计
物品装备系统
(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课程的简单建议
希望在课程中能多提供一些优秀的设计,帮助大家更好地理解如何编写程序。