OOPre第八次作业

xygz_msr xygz_msr 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

1 最终架构设计

1.1 输入处理模块

Main, Lexer, RelationshipParser

  • Main是程序入口,负责命令分发和流程控制
  • Lexer是实现词法分析器,解析关系表达式中的标识符和分隔符
  • RelationshipParser是语法解析器,处理雇佣关系的嵌套结构

1.2 冒险者核心模块

Adventurer

  • 管理冒险者基本属性(生命值、攻击力、防御力、魔法值、金钱)
  • 维护物品集合(药水瓶、装备、法术)
  • 处理战斗逻辑和使用物品行为
  • 管理复杂的雇佣关系网络
  • 实现状态检查和死亡处理机制

1.3 物品系统模块

Bottle, Equipment, Spell

  • Bottle是药水瓶基类,管理治疗效果和使用状态
    • HpBottle、AtkBottle、DefBottle、ManaBottle
  • Equipment是装备基类,区分武器和防具,管理战斗加成
    • Sword、Magicbook、Armour
  • Spell是法术类,区分为治疗法术和攻击法术
    • HealSpell、AttackSpell

1.4 关系网络模块

设计模式: 隐式的组合模式处理树形雇佣关系
功能特性:

  • 支持多级雇佣关系的建立和维护
  • 自动处理冒险者死亡时的关系清理
  • 实现盟友识别和援助机制

img

2 迭代中的架构调整

第三次作业:实现物品管理

  • 实现物品的添加、移除、使用等基本操作
  • 采用简单的状态管理和死亡检测机制

第五次作业:引入装备系统与战斗机制

  • 在Adventurer中增加carriedWeapon、carriedArmour等字段
  • 实现getFinalAtk()、getFinalDef()等装备加成计算
  • 新增fight()方法处理复杂的战斗机制
  • 引入金钱系统和物品购买功能

第六次作业:引入雇佣关系

  • 在Adventurer中增加employers和employed列表
  • 实现isSuperiorOf()、isAllyOf()等关系判断算法
  • 新增getAllSubordinates()方法获取所有下属
  • 在使用物品时增加关系约束检查

第七次作业:引入编译器设计模式

  • 新增Lexer和RelationshipParser类处理复杂输入
  • 重构命令处理流程为统一的processCommand方法
  • 完善死亡状态管理,自动清理关系网络
  • 增强异常处理和边界条件检查

3 JUnit的心得体会

JUnit的存在很大程度上提高了我的代码质量和功能实现的准确性。当代码出现问题(WA了)时,我可以可以更为迅速地定了功能实现的时序错误或逻辑漏洞的位置,特别是在架构迭代时,我可以确保新增功能不影响原有逻辑。
借助覆盖率分析,我学会了设计全面的测试用例,尤其注重边界条件的验证,有效提升了代码健壮性。JUnit的使用让我从被动的调试转向主动的预防,更在编写测试用例的过程中加深了对题干需求的理解,从而减少因误读题目导致的实现偏差。这种测试驱动的开发方式,极大地提升了我的编程效率和代码可靠性。

4 学习OOPre的心得体会

在OOPre的学习中,我逐渐体会从面向过程到面向对象编程思维的转变。与大一学习的C语言中"先做什么后做什么"的流程化思维不同,Java更偏向为以对象为中心构建系统。
我最大的收获是理解了封装的价值——将数据和操作封装在类内,通过清晰的接口交互。在实现物品系统时,我运用接口统一了不同类型物品的使用方式,体会到面向对象设计的优雅与灵活。这种思维方式让我在设计复杂系统时,能够更好地把握整体架构,为后续的软件开发奠定了坚实基础。
但是,在这半个学期中,我也仅仅只是踏入了面向对象编程的大门,期待在下学期的OO课程中能对面向对象有更深刻的体悟。

5 对OOPre课程的简单建议

  1. 希望在每次作业之后看到每次作业的优秀架构设计。作为从面向过程过渡到面向对象的学习者,我在起步阶段遇到的最大问题就是对整体架构缺乏概念。如果能在课程早期看到一些经典的设计范例,我觉得对我建立正确的设计思维很有裨益。
  2. 希望课程中可以增加更多关于Git等版本管理工具的讲解。作业过程中的的多次迭代让我切身感受到版本管理的重要性。若能更系统地学习分支管理、提交规范等最佳实践,将能更好地支撑未来的项目开发和协作。
...全文

相关推荐

2023Fall-BUAA-OOPre-hw-8-summary

2023Fall-BUAA-OOPre-hw-8-summary

Eri_Q

北京航空航天大学2024年秋季学期面向对象设计与构造先导课程实践项目_基于Java语言的冒险游戏设计与实现_面向对象编程思想实践与教学演示_包含类设计继承多态接口实现设计模式.zip

北京航空航天大学2024年秋季学期面向对象设计与构造先导课程实践项目_基于Java语言的冒险游戏设计与实现_面向对象编程思想实践与教学演示_包含类设计继承多态接口实现设计模式.zip

meide888888

MATLABSimulink模拟及会议论文,关于具备自动温度控制和能耗分析的智能太阳能热水系统。.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

海神之光

完美复现基于自适应虚拟谐波阬的光储VSG并网电流谐波抑制模型(Simulink仿真实现)

内容概要:本文围绕基于自适应虚拟谐波阬的光储VSG并网电流谐波抑制模型展开研究,提出了一种结合虚拟同步发电机(VSG)控制与自适应虚拟谐波阬技术的谐波治理方案,旨在有效应对光伏发电与储能系统并网过程中产生的特定次谐波问题。通过在Simulink中构建完整的系统仿真模型,详细实现了VSG的惯量阻尼控制、功率环调控以及自适应谐波阬的频率识别与阻抗重塑机制,能够动态跟踪并抑制并网电流中的谐波成分,从而提升电能质量和系统并网稳定性。文章深入剖析了控制器结构设计、关键参数整定方法及谐波抑制效果的仿真验证过程,充分验证了该方法在复杂工况下的有效性、鲁棒性与工程应用潜力。; 适合人群:具备电力电子、新能源并网、电力系统分析等相关专业知识背景的科研人员与工程技术人员,尤其适用于熟悉Simulink仿真环境、掌握基本控制理论与信号处理技术的研究生、高校教师及企业研发人员。; 使用场景及目标:①应用于光伏-储能联合系统的并网逆变器控制设计;②用于提升VSG并网系统的电能质量与抗扰动能力;③为高比例新能源接入场景下的谐波分析与主动抑制策略提供仿真验证平台与技术支撑;④辅助开展新型电力系统中电能质量治理相关的教学与科研工作。; 阅读建议:建议读者结合提供的Simulink模型文件进行同步仿真操作,重点理解VSG控制架构与自适应虚拟谐波阬模块的耦合关系,关注谐波检测、频率自适应调整与复矢量控制的实现细节,并可通过改变负载条件或电网阻抗参数进行多工况测试,以深入掌握系统的动态响应特性与控制性能边界。

@橘柑橙柠桔柚

机械三维3D设计图-食品皮带机输送除尘消毒设备.zip

机械三维3D设计图-食品皮带机输送除尘消毒设备.zip

ZL4120505
评论
收藏 已收藏
分享
返回顶部