【OOPre】BUAA 2024秋季 OOpre总结
架构
架构设计
- MainClass对输入进行解析,并执行相应的顶层操作。
- CE为战斗力接口,Equipment、Bottle、Adventurer实现了CE接口。
- Good为物品接口,Equipment、Bottle实现了Good接口。
- Equipment下有Axe、Sword、Blade三个子类。
- Bottle下有HpBottle、DefBottle、AtkBottle三个子类。
- Fragment为碎片类,与其他类、接口无继承、实现关系。
架构调整
- 提出实现战斗力单位要求时,考虑战斗力单位具有相似的行为,如计算战斗力,查看战斗力等,添加了CE战斗力接口。
- 提出背包要求时,为了将装备和瓶子能一起放入背包,添加了Good物品接口,使一个对于Good的容器能盛放装备和瓶子。
- 装备和瓶子中的方法和属性对子类等是通用的,故作为父类。
JUnit心得
为了保证覆盖率的要求,编写的JUnit对于各类、方法、分支都必须进行充分的测试。在这个过程中即使数据不够强,也能检测出简单的Bug,减少很多由于疏忽造成的错误,同时也使自己对于容易出现的Bug更加警觉。当然趁此机会思考编写强力的测试数据对程序进行测试而不是仅为了满足覆盖率要求才是应该做的,我个人做的不够好,希望能在以后注意并改正。
OOpre心得
面向过程到面向对象
面向过程像是修路,面向对象像是造车。面向对象理解起来更加具象,同时封装、继承、多态等概念又使得能在此基础上进行抽象和模块化,便于扩展和复用。这点要比面向过程舒服得多。同时Java还注重内容的安全和访问权限,这点是之前未接触过的,更加贴近实际工程和应用,加深了我对编程的理解。
合作开发与代码扩展性和规范性
在OOpre课程中了解了Git,Git的作用不止提交作业,在以后进行合作开发的过程中离不开Git的使用,OOpre课程使我对这一点的认识更加深刻。同时CheckStyle这一贴近企业开发的工具使我更加注意自己的代码风格,注意代码规范。迭代作业的形式也让我在编程过程中形成了考虑代码可扩展性和兼容性的良好思考方式。
建议
课程内容可以由作业内容引出,让大家课下用到的是课上学到的东西,否则仅仅是从指导书学东西而非将应用课堂知识。
【OOPre】BUAA 2024秋季 OOpre总结
http://example.com/2024/11/06/【OOPre】BUAA 2024秋季 oopre总结/