OOpre的课程总结

陈正阳-24371410 2025-11-06 21:25:07

OOPre hw-8

系统总体架构

img

这是一个冒险者管理系统,采用面向对象设计,主要包含物品管理、冒险者属性和关系管理、战斗系统以及金钱系统四大核心模块。

核心模块划分

  1. 物品系统

    基础抽象类:Item(所有物品基类)

    派生类

    Bottle(药水)→ 具体药水类型(HpBottle、AtkBottle等)

    Equipment(装备)→ 具体装备类型(Sword、Magicbook、Armour)

    工厂模式:Factory 类统一创建各类物品

  2. 冒险者系统

    Adventurer 类:核心实体,包含:

    基础属性(生命值、攻击力、防御力等)

    物品和法术管理

    背包系统(Backpack)

    上下级关系网络

  3. 关系管理系统

    树形组织结构(boss-subordinate)

    支持盟友判断、帮助机制

    词法分析器(Lexer)解析关系表达式

  4. 战斗与交互系统
    物品使用机制(药水、法术)

    战斗计算(考虑装备、关系约束)

    经济系统(金钱获取与消耗)

设计特点

  • 工厂模式统一对象创建

  • 策略模式处理不同类型物品效果

  • 组合模式管理冒险者层级关系

  • 命令模式处理用户输入

迭代调整

  1. 引入背包(Backpack)类:使得冒险者可以携带物品,例如武器和药水瓶,并加入相关判断条件,实现只有在拥有并携带的情况下才可以使用的题目要求。
  2. 加入工厂(Factory)模式:更方便地创建正确的对象,用于生成正确的新的冒险者、物品、法术等类。
  3. 使用若干子类并加入枚举:通过父类和子类的联系,使得代码具有更强的可读性,并通过枚举,使得物品种类的判断更为方便。
  4. 加入指令处理(CommandProcessor)类:将读取的指令经过该类的识别,调用对应类的方法,实现所需求的输出,能够大大减少Main类的行数。
  5. 加入Lexer类:用于词法的分析,正确读取指令对应的内容,并传输给其他的方法,实现指令的影响。

Junit心得体会

  • 使用Junit来测试自己的源代码,能够通过使用边缘极端数据,来测试代码的严谨性,避免小部分特殊情况无法实现的错误。
  • 使用Junit能够单独测试某一个方法或者某一个函数,能够分开检查,在出现异常时能更快更方便地找到bug所在的位置,进行修改,大大提高了debug的效率。
  • 通过Junit的学习,我学会了自检代码的重要方法,还明白了自检代码的重要性,能够在提交之前找到大部分的不合理之处。

OOPre学习心得

  • 通过半个学期的OOpre的课程学习,我学会了Java编程的基础的语法,逐渐适应了从面向过程编程到面向对象编程的转变,通过针对某一类对象的处理来实现指令的影响,而不是通过函数的堆积和联系,增强了代码的可读性和可延展性,能够更好的进行迭代更新,实现更完整的设计。

对OOPre课程的建议

  • 在中测时将未成功的数据点或者所有标准输入给出,更方便自行查找bug。
...全文
21 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

270

社区成员

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

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