2025OOpre学习心得

尚锦程-24231214 2025-11-16 18:02:28

OOPre课程学习总结:从过程到对象的编程思维转变

作业架构设计与迭代演进

初期架构(1-3次作业):开始时采用了比较简单的类结构,主要包含AdventurerBottleEquipment等基础类。这时候更多是"有什么就建什么类"的思维,缺乏整体规划。

中期调整(4-5次作业):随着功能增加,引入了Factory工厂类来统一创建物品,这是第一次有意识地使用设计模式。同时为装备系统建立了继承体系,SwordArmourMagicbook都继承自Equipment基类。

后期完善(6-7次作业):最大的架构变化是引入了Employer类来管理雇佣关系,以及ParserLexer来实现递归下降解析。这时候开始真正思考类之间的职责划分和数据流向。

关键设计决策

  • 将雇佣关系管理独立成Employer类,而不是放在Adventurer

  • 使用工厂模式创建物品,避免在业务逻辑中直接new对象

  • lr指令专门设计了解析器组件,保持主逻辑清晰

JUnit测试实践体会

从第四次作业开始系统使用JUnit,最大的感受是:测试不是负担,而是保障

测试策略演进

  • 初期:只测试正常流程,忽略边界情况

  • 中期:开始关注异常测试和边界值测试

  • 后期:为每个新功能优先编写测试用例

最有价值的发现:在实现雇佣关系检查时,通过测试发现了业务逻辑顺序问题——应该在检查物品存在性之前先检查雇佣关系。这个bug在手动测试时很难发现,但通过单元测试很容易定位。

测试覆盖率的意义:90%的方法覆盖率要求促使我不得不为那些"觉得不会出错"的方法也编写测试,结果确实发现了一些隐藏问题。

面向对象编程的学习心得

最大的转变是从关注步骤关注对象

过程式思维的惯性:前两次作业时,我还在用C语言的思路,想着"先做什么、再做什么",把Adventurer类写成了一个大杂烩,里面充满了各种if-else。

对象思维的觉醒:第三次作业时开始真正理解"对象是自己的主人"这个概念。每个对象应该负责自己的行为和数据,比如:

  • Adventurer自己决定能否使用某个物品

  • Employer独立管理所有雇佣关系

  • Parser专注解析语法结构

封装的价值:通过将雇佣关系检查封装在Employer中,主程序只需要关心"能不能用",而不需要知道"为什么不能用的具体逻辑"。这种职责分离让代码更易维护。

多态的应用:在装备系统中,虽然SwordMagicbook的计算方式不同,但通过统一的getAtk()接口,战斗逻辑可以一致处理,这是面向对象最优雅的地方。

对OOPre课程的两点建议

  1. 希望提供更多架构演进的示例:现有的指导书主要讲功能需求,如果能展示一些从简单到复杂的架构演进案例,对理解面向对象设计会更有帮助。

  2. 增加代码评审环节:同学之间互相review代码,能够更直观地看到不同的设计思路,这种学习比单纯看理论更有效。

通过这门课程,我不仅学会了Java语法,更重要的是建立了面向对象的设计思维,希望能够在后序的课程中有更多的收获

...全文
78 回复 打赏 收藏 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文围绕通过短时倒谱(Cepstrogram)计算进行时-倒频分析的研究,提出了一种基于Matlab的信号处理方法,旨在从复杂信号中提取时变的倒频域特征,尤其适用于具有非线性反馈的LTI系统识别。文中系统阐述了短时倒谱的理论基础、计算流程与实现机制,并结合Simulink与Matlab代码实现了多个典型应用案例,涵盖非线性系统辨识、路径损耗建模、信号去噪与增强等,充分展示了该方法在系统建模与信号分析中的强大能力。研究不仅提供了完整的算法实现方案,还深入探讨了其在科研与工程实践中的广泛应用前景。; 适合人群:具备扎实的信号处理理论基础与Matlab编程能力,从事自动化、通信工程、电子工程、控制科学等领域的高校研究生、科研人员及工程技术人员。; 使用场景及目标:①实现对具有非线性反馈的LTI系统的精确建模与参数辨识,提升系统识别的准确性与鲁棒性;②在强噪声背景下进行有效的信号特征提取与时-倒频域分析,恢复信号的有效成分;③作为高级信号处理的教学与科研平台,帮助深入理解倒谱分析的物理意义及其在现代工程中的实际应用。; 阅读建议:建议读者在学习过程中紧密结合文中提供的Matlab代码与Simulink模型进行动手实践,通过调整参数、修改输入信号等方式观察分析结果的变化,以加深对算法机理的理解;同时可访问作者提供的网盘资源与完整代码包,系统性地掌握相关技术的优化与拓展方法。

309

社区成员

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

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