软件实训总结

实践任务1:代码规范与标注

目标

1. 阅读和理解样例代码

  • fork样例工程,并clone到本地仓库;
  • 在本地开发环境上运行样例工程,理解样例工程的代码逻辑;
  • 精读样例工程软件代码,描述代码结构及部件组成;
  • 以UML图描述样例工程的组成及结构图(类及类之间的关系);

2. 标注样例工程中的代码

  • 基于javadoc规范标注代码,对包、类、方法、代码片段、参数和语句等代码层次进行注释(可参考Game类的标注样例);
  • 注释后的代码提交到本地代码库后,同步推送到远程代码仓库;
  • 可参考ESLint、github/super-linter等开发插件了解关于代码规范的相关知识;

3. 扩充和维护样例工程

  • 对样例代码中的功能设计进行分析,找出若干设计缺陷和改进点,并进行修正或扩充,并集成到工程代码中;
  • 可借助代码质量分析工具或代码规范检查工具(如SonarQube、ESLint等)对代码质量进行分析,发现潜在问题;

4. 任务输出

  • 以UML图表示的样例工程软件结构;
  • 在所有源代码文件中完成源代码标注和扩充,并通过git提交到代码库;
  • 在项目根目录下创建一个名称为REPORT.md的文件(与README.md文件同级),以markdown语法格式编写本实训任务的报告,主要包含样例工程的代码结构分析(可以用UML类图及文字进行说明),以及自己改进的功能实现说明;

1. 阅读和理解样例代码

通过Git 工具将项目 fork 到本地,打开IDEA加载此项目,在加载过程中需要配置运行项目的JDK等环境。

此项目采用JDK1.8 版本编译执行。

1.1 项目结构

软件实训总结

当前项目主要的实现目标就是玩家能够输入 Help、Go、Quit指令来操纵游戏,因此从用户角度来考虑系统用例就是玩家进入游戏输入命令。在系统内部包含对用户输入指令的识别、解析、然后执行,最后根据指令的类型确定是否有结果反馈。

1.3 系统类图

软件实训总结

类中有两个成员变量,分别是 类和 类,因此和、之间是一种组合关系。

类的方法中 类对象作为方法参数出现,因此二者之间是依赖关系。

Parser

类中有类对象作为成员变量,因此二者之间是组合关系;

类的方法中有类作为方法的局部变量,因此二者之间是依赖关系。

2. 标注样例工程中的代码

具体的工程注解已经通过Git同步到GitHub上,可前往查看。

软件实训总结
软件实训总结

新加入了一个room包,该包中主要放置生产房间的工厂和房间基类。

更详细代码可查看 Github

AbsRoom

SchoolBuilder

结果对比:

软件实训总结

解决策略2:引入Spring框架

对于耦合性高的问题,更加简单高效的方法是采用框架,对象的管理权不由使用对象的双方来控制管理,而由与对象无关的来管理,的思想(控制反转),就是降低耦合度的非常棒的选择。

而且引入框架后还可以使用的功能对项目中的某些代码进行增强,它使用了动态代理的原理实现了对某些方法的进一步强化,而不用去修改其它模块的代码。比如说玩家探险时可以在某个固定的时刻进行消息提示、对于一些禁止操作也可以进行记录。

这里由于时间有限就不附上代码了,想要学习了解可以参考我的

https://github.com/iStitches/Spring_IOC_Conclusion

3.2 优化点二、策略模式使用

问题发现

针对类的如下代码可进行相关的优化操作:

    private boolean processCommand(Command command)    {boolean wantToQuit = false;// 无效命令if(command.isUnknown()) {    System.out.println("I don't know what you mean...");    return false;

来源:早睡早起爱学习i

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年5月26日
下一篇 2021年6月1日

相关推荐