2025BUAA-oopre 课程总结
一.最终架构及说明
框架如图所示

控制部分
MainCommandProcessorFactoryLexer
操作对象
AdventurerItemBottleAtkBottleDefBottleManaBottleHpBottle
EquipmentArmourWeaponSwordMagicBook
SpellUsableItem(接口)BottleSpell
二.历次迭代中的调整与思考
第一次迭代:容器
第一次迭代把整个项目最基础的一些物品进行了实现,并且通过容器来管理(实际上当时还只会ArrayList,后续进行了修改)。在一开始我意识到对指令的解析和操作部分一定会不断扩展,所以写了一个CommandProcessor类来处理指令,没有直接在main方法中处理,避免了后续的调整。
第二次迭代:继承和接口
利用继承机制划分了不同的药水瓶。利用接口UsableItem来实现了Bottle和Spell的use方法。最后是关于背包,我再设计了一个父类Item让Equipment和Bottle继承,通过Item的容器来管理携带的物品(为下一次复杂的选择埋下伏笔了)。
第三次迭代:新容器和工厂模式
1.内容上装备进行了细化,故新增了一些子类。对装备的属性进行了定义。对背包携带物品数量进行了限制,装备和药水瓶各有上限。定义了战斗规则和金钱系统。
2.这里就出现了一个问题,战斗需要已携带的装备的属性值,我想到两种思路:一是新定义一个冒险者的用于战斗的属性,每次更新携带的装备时更新,携带的装备仍然在背包里,二是把携带的装备作为冒险者的属性(因为数量只有1,非常特殊),背包实际上只装了携带的药水。我采用了后者,原因就在于数量的特殊和使用的规则不同于药水瓶这样的消耗品,让我更倾向于把其作为属性(不知道是否合适)。
3.金钱系统需要实现的两部分,购买在CommandProcessor中用一个方法实现,战斗导致的金钱变化通过又一个新方法,战斗后调用该方法更新冒险者的金钱属性。
4.采用了工厂模式来封装多种实例化过程。
第四次迭代:观察者模式
雇佣关系实现,采用类似观察者模式,用hashset来存储直接下级,写了一个递归方法得到所有下级,同第三次一样,我将直接上级也作为属性。
第五次迭代:递归下降法
对一个规定的雇佣关系输入指令解析,采用递归下降法,实现了对指令的解析和执行。
三.Junit使用体会
JUnit的使用让我体会到了单元测试的重要性。以前都是通过控制台输出人工比对debug,在逻辑复杂的情况下极为麻烦。通过JUnit的自动化测试,为每个类和方法编写测试用例,同时断言功能使得验证预期结果变得简单直观(终于不用肉眼观察了),大大提升了测试效率,并且对于边缘数据的测试也更直观,不会再因为人为因素遗漏。
四.OOpre课程心得
OOpre课最大的收获是让我对于“对象”有了一定的理解。过去的面向过程编程,注重的是对流程和数据一步一步的操作,而面向对象我的理解是将数据和操作封装在对象中,通过对象之间的交互来实现功能。“对象”作为一个实体或概念的抽象,封装好了我们需要的数据以及用于实现功能的方法,这样我们在进行更高层的设计时,不需要再关注对象内部的复杂细节,只要描述对象间的行为即可,对于复杂工程来说,这种简化效果极其有益。
除此之外,checkstyle也让我获益颇多,尤其是规范命名,这很大程度上避免了命名冲突和理解错误,提高了代码的可读性,在维护时也更加一目了然,这个习惯对于其他语言也是可迁移的。
五.课程建议
指导书可以更加详细一些,比如实例代码可以更加丰富,然后一些内容讲述顺序可以略调整,比如容器的部分可以都放在一次靠前的讲解,更系统也更好比对各类优劣,同时也便于后续的扩展和维护。
相关推荐
《模式识别与数据挖掘》配套PPT课件
《模式识别与数据挖掘》配套PPT课件
科技成果转化项目进场交易前,评估备案环节需要准备哪些材料?_8.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
人工智能通识教育(中职版)课程标准+PPT课件+部分素材+电子活页+在线考核
人工智能通识教育(中职版)课程标准+PPT课件+部分素材+电子活页+在线考核
跨境电商供应链管理(AIGC版)课件+教案+参考答案
跨境电商供应链管理(AIGC版)课件+教案+参考答案
110KV单电源电网三段式电流保护+距离继电保护整定计算说明报告(23页+6000字)
内容概要:本文是一份关于110kV单电源电网继电保护整定计算的综合性技术报告,全文共23页、约6000字,系统阐述了三段式电流保护与距离保护的设计原理及其整定计算方法。报告深入分析了电力系统在短路故障条件下的电流与阻抗特性,详细推导了电流保护Ⅰ、Ⅱ、Ⅲ段的动作范围、整定原则、灵敏度校验及时间配合机制,确保满足继电保护的选择性、速动性、灵敏性和可靠性“四性”要求。同时,针对长距离或重要输电线路,补充介绍了距离保护的阻抗整定计算方法,并可能结合Matlab进行仿真验证与辅助计算,提升整定结果的准确性与工程实用性。; 适合人群:适用于电气工程及其自动化相关专业的高年级本科生、研究生,以及从事电力系统继电保护设计、运行维护的工程技术人员;要求读者具备电力系统分析、短路计算及继电保护的基础理论知识。; 使用场景及目标:①掌握110kV单电源辐射型电网中三段式电流保护的整定流程与实际计算步骤;②理解距离保护的工作原理及其在复杂工况下的应用优势;③完成实际工程项目的保护配置与整定计算任务,或作为课程设计、毕业设计及科研课题的技术参考资料;④结合Matlab工具实现整定计算的程序化处理与动作特性仿真验证。; 阅读建议:建议读者结合《电力系统继电保护原理》等相关教材同步学习,重点研读整定公式的推导过程与典型算例的计算细节,注意区分电流保护与距离保护的适用场景与配置逻辑,有条件时应利用Matlab等工具对保护动作行为进行建模与仿真,以深化对保护协调配合机制的理解。


