2025OOpre课程总结

吉俊西-24373190 2025-11-08 18:53:27

1.作业最终的架构设计, 在迭代中的架构调整及考虑

类图

img

架构设计
下列几个迭代过程中,个人认为比较重要的调整:

  • 将主函数的读入和处理解耦:处理部分封装在的Solver类中。这样做不仅有利于缩短函数长度,还可以方便地编写Junit测试。
  • 将大部分的父类定义为抽象类:根据作业题目的要求,进行实例化的对象全部都是叶子类;将父类定义为抽象类有助于在结构上避免无用父类的实例化。
  • 使用简单工厂模式和观察者模式:尝试运用了简单的面向对象编程思想;工厂模式将对象的创建和使用解耦,而观察者模式把主从的行为清晰地分开,符合直觉。

2.使用JUnit的心得体会
JUnit覆盖率是看程序是否运行到了相关的代码块,而不看我们在对应代码块是否做了断言。所以提高覆盖率的简单方法就是往主类丢一个复杂样例进去。。。不过我认为这样做不符合JUnit的思想:因为我们难以得知复杂样例的正确输出;即使知道了正确输出,也难以debug。JUnit的核心是为我们提供了一个方便模块化测试的工具,应以函数为最小单位充分测试,并且充分运用断言。

3.学习OOPre的心得体会(包括但不限于从面向过程编程过渡到面向对象编程的体会)
个人在学习的过程中的最大体会,就是面向对象编程胜于面向过程编程的层次化与模块化设计。对象以及对象所拥有的所有方法,让我们在编程时可以将一类事物看作一个整体来处理,这无疑是利好团队合作的。编写一个模块的程序员只需要提供一个模块的接口和方法的说明,而不需要考虑到其他模块的具体实现;这样一来庞大项目的编写也变得简单了。

4.对OOPre课程的简单建议(不多于两条)

  • 希望课程组对指导书的把关可以做得更好。
...全文
26 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

270

社区成员

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

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