最终的架构设计

- Main 类只负责调用Manager类读取并处理输入。
- Manager 类负责读取和处理输入,在其中维护了冒险者集合,战斗中冒险者集合和战斗日志集合。
- Fightlog 类负责存储战斗日志,处理战斗日志的输出。
- Commodity 接口由Adventurer, Bottle, Equipment, Food类实现,方便进行统一处理。
- Store 类使用单例模式构造, 负责处理物品的买卖。
- Adventurer 类调用了Bottle类,Equipment类以及Food类,负责冒险者的主要操作。
迭代中的架构调整
- 最初的代码将所有的读取和处理操作放在Main类中,导致类内方法职责杂糅,代码量过大。于是新建Manager类用于处理输入的相关内容,Main类只负责调用即可。
- 最初日志的处理直接放在Manager类中,不便于使用,于是新建Fightlog类处理日志的任务,方便调用与存储。
使用junit的心得体会
最初使用的时候认为用处不大,后来发现在数据量过大的时候通过输入逐步调试的方法效率过低,这时候junit的优势就体现出来了。
- 使用junit可以直接调试某个方法的正确性,避免了按照输入格式构造测试数据的繁琐的过程。
- 在junit中可以方便地构造边界数据,以确保代码在极端条件下仍然正常运行。
学习oopre的心得体会
- 在面向对象编程中需要思考问题中的属性和行为,并尝试将其抽象成类和对象。在这个过程中提高了抽象和建模的能力。
- 在面向对象编程中需要思考和应用设计模式,以便更好地设计和组织代码,使得代码更加健壮和可维护。
- 通过使用继承和多态,使得代码的复用性更高。通过继承,可以基于现有的类创建新的类,而多态性则允许不同的对象对相同的消息作出不同的响应。这提高了代码的灵活性和可扩展性。
- 最后,在面向对象编程中,我不再仅仅是在处理一系列的步骤,而是在处理具有一定状态和行为的实体。更好地反映出真实世界的问题,使得编码更加直观。
对oopre课程的简单建议
建议能在课程中更多地介绍junit的高效的使用方法,方便同学们更快地掌握。