2023oopre结课总结~

安琦22373295 学生 2023-11-08 23:17:33

架构设计

1.最终代码架构

 

在最终架构中,代码利用Main作为程序入口,读取指令并调用Command中的方法进行处理。

Command类可对普通指令和战斗信息进行分别处理。对普通指令,该类会寻找对应ID的冒险者并调用Adventurer类中的方法;对战斗信息,该类会调用类内的方法进行解析,实例化新的Attack并按日期存储。

Adventurer类用于管理冒险者所拥有的Product,Bottle,Equipment,Food均继承自Product,便于统一管理。

Factory用于实例化新的Product对象,可以被Adventurer和Store直接调用。

Store作为商店,用于冒险者售卖和购买商品。

2.迭代过程中的调整

最初的两次作业中,指令种类较少,可以直接在Main类中对指令进行解析。

在第四周的作业中,为减少Main类的行数,我在代码中添加了Command类,用于解析指令。同时,本次作业中我还添加了Attack类,用于实例化存储战斗信息的对象。

在第六周作业中,我对Bottle类和Equipment类添加了对应继承。

在第七周作业中,我利用单例模式构建了Store类,用于实现物品的出售与购买。为便于统一管理冒险者的物品,我构建了Product类作为Bottle,Equipment和Food的父类,并构建Factory类用于构造对象。

使用Junit的心得体会

Junit作为一个很强大的测试工具,可以对类中的每个方法进行单独测试,帮助我发现了程序中的一些bug。同时,在追求分支覆盖率达标的过程中,我对代码的逻辑有了更深的了解,这一过程对提升正确率起到了很大的帮助。  

在后期的作业中,构建测试数据成为了一个比较复杂的过程,需要在满足分支覆盖率的同时尽可能地构造边界数据(所以会有一些没有作用的测试),给我带来了很大的工作量。

面向对象课程心得体会

1.从面向过程到面向对象

java语言将C语言中的结构体和函数延伸为类和方法,引入了面向对象这一思想,将现实中的物体抽象为对象这一概念,增强了代码的可读性。同时,面向对象编程具有封装,继承和多态的特性,极大地提高了代码的可扩展性和灵活性,为迭代开发提供便利

2.关于Java语言

java语言和C语言有一定的相似性,但是它引入了更多的库,可以使代码更加简洁(真的比C语言好写多了,就比如HashMap,真的好用)。

对oopre课程的建议

1.希望课程在最开始能涉及到一些java语法的内容。

最后,十分感谢老师和助教的付出~

...全文
11 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

301

社区成员

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

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