2025 面向对象程序先导课程总结

74066205 叶永喆 2025-11-17 19:17:06

 

最终架构设计

一、整体架构概览

本项目采用分层架构 + 命令模式 + 工厂模式的设计,实现了一个冒险者战斗管理系统

二、核心设计模式

1. 命令模式 (Command)

将每个操作封装为独立的命令对象,便于扩展和维护

2. 工厂模式 (Factory)

集中管理对象创建逻辑,避免大量new操作

3. 策略模式 (Strategy)

体现在不同类型的物品和法术有不同的使用效果

4. 观察者模式 (Observer - 援助系统)

场景:当冒险者血量降到一半以下时,其下级自动提供治疗

三、核心类详解

1. Adventurer 类(核心领域模型)

职责

  • 属性管理:HitPoints、Atk、Dtk、Mana、Money
  • 物品管理:背包、携带队列、装备槽
  • 法术管理:学习 (learnSpell)、施放
  • 雇佣关系管理:上级、下级、盟友判断
  • 战斗逻辑:攻击、防御计算
  • 援助机制:触发援助、治疗下级

2. Command 命令类(业务逻辑层)

  • UseCommand - 使用物品/法术
  • FightCommand - 战斗逻辑
  • LoadRelationCommand - 批量导入雇佣关系

3. Parser + Lexer

解析 lr 指令的树形雇佣关系表达式
 

 

 

 

使用JUnit的心得体会

比传统的控制台输出调试高效许多。可以针对单个类的方法进行测试,快速验证结果。JUnit 的优势在于高效、精准、全面和可维护:多组测试数据可快速验证,问题定位精确,覆盖率检查确保各部分都测试到,更能发现潜在的bug。不仅提高了开发效率,也帮助我预防错误,使开发过程更更严谨。 

 

学习OOPre的心得体会

java面向对象的思想比起C语言面向过程的方式,更加注重封装、继承和多态。这设计思路上的改变一开始带给了我不少的挑战,觉得java非常地抽象,但之后才渐渐觉得java这样的实现方式也是挺方便的,通过类的实现可以减少重复代码,而类与对象的抽象让问题分解更自然、更贴近现实世界。不仅提升了程序的可维护性和可扩展性,也让我在构建复杂系统时更有条理。虽然在找bug的过程对我来说十分痛苦,但OOP课程带给了我新的程序设计思路,对我还是有非常大的帮助。

 

 

对OOPre课程的简单建议

有些作业的题目太长了,读起来很容易误解意思,有些错误测试点没显示哪里有问题让我找得非常痛苦,尤其是强测的 "line is expected..." 常常让我摸不着头脑到底哪里出错了。

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

270

社区成员

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

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