270
社区成员
发帖
与我相关
我的任务
分享Main, Lexer, RelationshipParser
Main是程序入口,负责命令分发和流程控制Lexer是实现词法分析器,解析关系表达式中的标识符和分隔符RelationshipParser是语法解析器,处理雇佣关系的嵌套结构Adventurer
Bottle, Equipment, Spell
Bottle是药水瓶基类,管理治疗效果和使用状态Equipment是装备基类,区分武器和防具,管理战斗加成Spell是法术类,区分为治疗法术和攻击法术设计模式: 隐式的组合模式处理树形雇佣关系
功能特性:

Adventurer中增加carriedWeapon、carriedArmour等字段getFinalAtk()、getFinalDef()等装备加成计算fight()方法处理复杂的战斗机制Adventurer中增加employers和employed列表isSuperiorOf()、isAllyOf()等关系判断算法getAllSubordinates()方法获取所有下属Lexer和RelationshipParser类处理复杂输入processCommand方法JUnit的存在很大程度上提高了我的代码质量和功能实现的准确性。当代码出现问题(WA了)时,我可以可以更为迅速地定了功能实现的时序错误或逻辑漏洞的位置,特别是在架构迭代时,我可以确保新增功能不影响原有逻辑。
借助覆盖率分析,我学会了设计全面的测试用例,尤其注重边界条件的验证,有效提升了代码健壮性。JUnit的使用让我从被动的调试转向主动的预防,更在编写测试用例的过程中加深了对题干需求的理解,从而减少因误读题目导致的实现偏差。这种测试驱动的开发方式,极大地提升了我的编程效率和代码可靠性。
在OOPre的学习中,我逐渐体会从面向过程到面向对象编程思维的转变。与大一学习的C语言中"先做什么后做什么"的流程化思维不同,Java更偏向为以对象为中心构建系统。
我最大的收获是理解了封装的价值——将数据和操作封装在类内,通过清晰的接口交互。在实现物品系统时,我运用接口统一了不同类型物品的使用方式,体会到面向对象设计的优雅与灵活。这种思维方式让我在设计复杂系统时,能够更好地把握整体架构,为后续的软件开发奠定了坚实基础。
但是,在这半个学期中,我也仅仅只是踏入了面向对象编程的大门,期待在下学期的OO课程中能对面向对象有更深刻的体悟。