BUAA-2023秋-oopre反思与总结
架构设计
作业最终架构
在迭代过程中的架构调整及考虑
- 在前几次作业中统一在Main类中进行指令读取与处理,后由于行数限制(以及测试需要),将处理方法调整到
Adventurers
类中,分别处理不同type指令的对应操作,通过Adventurers
统一管理冒险者,战斗日志以及唯一商店
可改进之处
- 添加
Scanner
类,进行命令行的读取 Adventurers
类中部分方法可加入Adventurer
类中,实现功能划分- 由于
id
及type
的唯一性,可新增Identity
接口和Type
接口,内含int getId()
和string getType()
方法 - 将
Adventurer
类中作为背包的三个HashSet
整合为背包类BackPack
使用junit的心得体会
- 通过单元测试,可以对每个类中的方法进行测试,通过等价类的划分对不同情况,不同分支下的代码进行基本行为上的检查,以全面覆盖检查各个方法,避免基本错误
- 但由于方法与测试分离,不能及时检测出代码中的错误,且部分上层方法调用下层方法,未自底向上进行测试,导致部分bug难以发现
- 总体而言,junit可以帮助我们通过自行测试发现bug,而不依赖于测试数据,有助于个人能力的提升
学习oopre的心得体会
- 对Java语法有了初步的学习和认知
- 对于面向对象的基本思想有了一定了解
- 在代码迭代的过程中体会不同设计模式之间的优劣,对自身代码结构进行重构,使得各个类各司其职,分工明确,在重构的过程中体会面向对象的基本思想,学会封装继承等的使用,对编程思想有一定提升
对oopre课程的简单建议
- 部分作业迭代难度较大,可能无法保证教学效果,希望适当减轻