BUAA-2023秋-oopre总结

范一泽-22230608 学生 2023-11-04 22:04:50

目录

  • 架构图
  • 架构设计
  • 架构调整
  • Junit心得体会
  • Oopre心得体会
  • 课程建议

架构图

在这里插入图片描述


在这里插入图片描述


架构设计

Adventure Bottle Equipment Food类实现Commodity(价值体)接口
Bottle Equipment Food类实现Mart(商品)接口和WearCom(携带价值体)接口
Market采取单例模式和工厂模式
BottleEquipment具体种类均用继承实现

架构调整

前几次作业中,由于对层次化架构理解和掌握不透,导致整体的结构并未实现层次化管理:指令处理函数以及很多操作均置于Main.java中导致冗长,在第五次迭代时加入Demon.java,将指令控制的部分移至其中,使Main.java简洁,同时Demon.java中的scanner属性方便测试。


Junit心得体会

编写junit测试对于维护代码正确性和debug过程有极大的帮助,junit的各项指标如行覆盖率、分支覆盖率可以让我们清晰地知道测试设计的严密性、覆盖的完整性,如果将分支覆盖率提升至100%,那么我们将能测试到几乎所有的细节,几乎可以发现所有可能存在的问题。我也在这几次的作业中尽可能的实现各项测试指标的满覆盖率。在这个过程中,我在设计尽可能完备的测试数据的同时,我思考角度的严谨性和全面性也得到了提升,大大提高了今后debug的能力。


Oopre心得体会

相比于之前学习的C语言这样的面对过程语言:针对某一问题,分析出具体步骤,再按照步骤一步步实现就可以了。而面向对象语言则应时刻履行层次化与模块化的良好的风格,通过对整体的提前分析,使自己的代码拥有科学的良好的架构,将代码组织为可重用、可扩展和易维护的模块化单元,否则将会十分混乱,仅仅只能实现功能性。此外,面向对象语言中对对象的引用就像是C语言中的指针,修改的是所引用对象的内容。


课程建议

  • 课上内容基本上都是传授思想,这是好的,但由于面向对象刚入门,基础薄弱,建议课上多一些实在的例子的陈列。
...全文
91 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

301

社区成员

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

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