OOPre课程总结反思

郭兆丰-24373163 2025-11-16 15:22:30

OOpre课程总结

代码架构

代码架构如图:

img

采用了模块化的思想,主要通过三个核心模块来实现架构。

1. 命令:

  1. Main:程序的唯一入口,将数据读入inputinfo数组之后调用input类的方法处理数据,同时input类通过递归下降法解析lr的指令。

  2. input:这里采用swich-case结构处理指令,每个指令对应一个方法,方法内实现具体的功能。

  3. Lexer: 词法分析器,负责将输入的字符串分割成一个个的单词(token),并提供给input类进行语法分析。

2. 冒险者系统

  1. Adventurer: 冒险者类,包含冒险者的基本属性和方法。

  2. AdventureContainer: 冒险者容器类,负责管理所有冒险者的创建、删除和查询等操作。

  3. Factory:工厂类,负责统一冒险者携带物品的创建,应用工厂模式。

  4. Employer,Employee:雇佣者和被雇佣者的类,二者形成观察者模式。

3. 物品系统

  1. Item: 接口实现,管理BottleEquipment类。

  2. Usage: 接口实现,管理BottleSpell类。

  3. stone:单例模式实现,保证全局只有一个stone实例,确保唯一性和一致性。

  4. MagicBook: 管理魔法书类。

架构调整及思考

在课程初期,采用的是较为简单的结构,随着课程的深入,类的数量在不断的扩展,为了方便管理引入了接口、工厂模式。为了满足援助指令的需求,引入了单例模式和观察者模式。观察者模式通过上级通知下级,下级响应上级的方式实现援助功能。单例模式确保了stone类的唯一性,避免了多个实例可能带来的数据不一致问题。

使用Junit心得体会

Junit通过模块化测试来发现代码可能存在的问题,但是对于结构复杂的函数,Junit的断言机制常常需要人肉编译,会增加时间消耗(例如fight函数),因此在编写代码时,尽量将函数拆分成更小的模块,方便测试和维护。同时,Junit测试用例的编写也需要覆盖各种边界情况,以确保代码的健壮性。

OOpre课程收获

通过OOpre课程的学习,我深刻理解了面向对象编程的核心思想和设计模式的应用。在实际编码过程中,学会了如何将复杂的问题拆解成多个类和模块,提高了代码的可维护信性。同时,通过Junit测试,增强了代码的稳定性。但是我也同样意识到了自己在设计模式应用上的熟练度较低的问题,需要在今后的学习中不断提升。

对OOpre课程的建议

增加实战开发机会,让同学们将学到的知识应用到实际项目中,课上的学习很难做到完全掌握OO的精髓。通过实战项目,可以更好地理解面向对象设计的原则和模式,提高解决实际问题的能力。

...全文
101 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
顾文达-24373130 2025-11-16
  • 打赏
  • 举报
回复 1

👍

307

社区成员

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

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