2025 OOPre 课程总结

郁志翔-24373513 2025-11-15 17:25:15

1. 架构设计

最终架构

img

  • MainLaunch进行输入解析与指令判断,实现AdventurersManager进一步处理。

  • AdventurersManager管理各个冒险者之间的行为,大多数指令由Adventurer进行进一步处理。

  • Adventurer管理各个冒险者的状态,调用方法执行指令。

  • 继承和接口能处理类与类之间的关系。

迭代过程

  • 第二次作业:

    • 创建Adventurer类管理冒险者,Bottle类和Equipment类管理冒险者所拥有的药水瓶和装备。
  • 第三次作业:

    • 设置Usable接口管理可用物品(法术、药水瓶)的行为。

    • 创建Spell抽象类管理法术,实现Usable接口,并创建HealSpellAttackSpell子类管理不同类别的法术。

    • Bottle类实现Usable接口,并创建HpBottleAtkBottleDefBottleManaBottle子类管理不同种类的药水瓶。

    • 创建Item类管理物品,使BottleEquipment类继承Item类进行统一管理。

    • 优化程序入口:MainClass主类实现MainLaunch类启动程序,MainLaunch类实现AdventurersManager类管理所有冒险者的行为。

  • 第五次作业:

    • 创建ArmourWeapon类继承Equipment类,管理装甲与武器两种装备,并创建SwordMagicbook类继承Weapon类,管理两种武器。

    • 创建Backpack类管理冒险者的背包,对物品携带进行限制。

    • 创建Factory类实现简单工厂模式。

    • AdventurersManager类中增加方法实现战斗事件与击杀事件的管理。

  • 第六次作业:

    • Adventurer类实现EmployerEmployee接口,创建雇佣关系,并重写相关方法。

    • 创建AidEvent类管理全局的援助事件,初步实现观察者模式。

    • Adventurer类增加与雇佣和援助事件相关的方法。

  • 第七次作业:

    • 创建LexerParser类管理词法、语法分析。

JUnit 心得体会

  • JUnit 测试不需要手动比对输出数据,自动显示出程序执行过程中与预期不符的处理,便于debug 。同时对每个类进行单元测试,能大幅度缩小debug 范围,极大提升效率。

  • 在后几次迭代过程中,对新程序进行完全的JUnit 测试很重要,否则随着代码增多,难免会出现细微的差错,导致在强测中失分。这也体现了JUnit 在大规模工程中的重要性。

OOPre 心得体会

  • 从面向过程到面向对象:在面向过程编程的学习中,我们只需要在每道题目中写几个函数对数据进行计算,并按要求输出即可,基本上不考虑维护与扩展。而在面向对象编程的学习过程中,我们尝试构建较大的项目,从模块化的数据处理方式到迭代开发的思维,各个方面都进行了学习与实践。我们需要设计出结构清晰的程序,并不断扩展、重构,这是一种从写程序向设计程序的方向的转变。

  • checkstyle :在课程中清楚地规定了代码格式、命名规则等,能让我们养成习惯,写出可读性更好的代码,便于多人协作与交流沟通。

对课程的建议

  • 希望能再多一些程序实例,一些设计方法很难明白,尤其是后面的几个设计模式。
...全文
26 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

270

社区成员

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

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