架构设计

在这里插入图片描述

  • 迭代调整与考虑

  1. 按照指导书要求创建Main,Adventurer,Bottle,Equipment,Food等基础类,按照属性的含义以及方法的功能放入不同的类当中,未考虑类与类之间的联系
  2. 随着指令的增加,需要更多的类来实现指令,发现类与类之间有许多重复与交叉的部分,可以通过继承与接口的方式来减少代码重写,增强类与类之间的联系
  3. 指令的实现若具有一定的复杂性,需要应用设计模式才能更为完善地实现指令,例如单例模式即可构造Store类,实现单一实例并直接访问的类,以及观察者模式,定义一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。
  4. 补充:主函数可以通过调用命令模式来实现指令,建立抽象指令,具体指令(指令对象),但未能完善。

    使用junit的心得体会

  • 在使用junit单元测试时,通过输入自己的测试代码,利用Assert语句判断输出是否符合自己预期,检测代码是否正确运行,并可以通过查看类,方法,行,分支覆盖率来查看自行编写的代码是否充分测试。
  • 直接在主函数中输入测试代码

    学习oopre的心得体会

  1. 以正确输出为目的:刚开始接触java语言感到陌生与害怕,并为使用新的编程环境与gitlab系统而感到担心。在编写代码时仅仅希望完成任务,达到正确输出的目标,未曾有架构的想法,仅有保证代码的可读性与结构整齐。
  2. 以充分测试为目的:完成代码编写后,仅仅将自己的想法实现出来,但是代码本身仍有巨大的可能性包含bug,故需要充分测试,该部分可以通过junit单元测试实现。
  3. 以合理架构为目的:逐渐有能力完成上述两个目标后,将注意力放在代码本身的架构上,不断进行重构,会增加整体代码的可读性,减少代码的设计复杂性,使整体代码更容易理解。
  4. 由上述可知,学习oopre的过程是一个逐渐进步的过程,对java的代码编写,测试方案,完整架构加强认识,产生自己的理解。

    对于oopre的简单建议

  5. 课程刚开始的gitlab使用和编程环境的配置过程可以出相关完整的教程(视频更好)进行指导,帮助同学顺利配置。