HIT 软件构造2019春 Lab5 问题解决

 

Update 5/26/2019

  • CheckStyle in IDEA
  • OQL in MAT
  • Optimization for IO
  • Design Pattern

 

CheckStyle in IDEA

 

使用以下操作解决缩进与包名导入问题。

 

打开IDEA的自动导包功能:

HIT 软件构造2019春 Lab5 问题解决

修改项目中Tab和缩进设置

HIT 软件构造2019春 Lab5 问题解决

修改项目中注释代码的缩进设置:

HIT 软件构造2019春 Lab5 问题解决

修改项目设置

取消使用*自动导入包

按照包名的字典序导入包

HIT 软件构造2019春 Lab5 问题解决

最后右击项目src,Format Code。

 

OQL In MAT

 

MAT OQL Syntax Link:https://help.eclipse.org/oxygen/index.jsp?topic=%2Forg.eclipse.mat.ui.help%2Freference%2Foqlsyntax.html

 

1)TrackCircularOrbit类的实例

HIT 软件构造2019春 Lab5 问题解决

2)特定长度n的字符串对象‘

HIT 软件构造2019春 Lab5 问题解决

3)大于特定大小的任意对象实例

HIT 软件构造2019春 Lab5 问题解决

4)PhysicalObject的所有子类数目以及占用内存

HIT 软件构造2019春 Lab5 问题解决

HIT 软件构造2019春 Lab5 问题解决

5)Collections实例-所有数目大于等于100的

如图:

HIT 软件构造2019春 Lab5 问题解决

因为本实验中大多数使用ArrayList,所以只检查满足条件的ArrayList。

HIT 软件构造2019春 Lab5 问题解决

 

Optimization for IO

1)将所有使用List遍历方式的检查换成HashMap

2)添加控制开关INPUTCHECKON,默认为true,如果false则对于输入文件不做额外的检查。

 

Design Pattern

1)使用FlyWeight设计模式设计Electron工厂,基本思想就是对于每一个轨道只有一个Electron实例。因为以前的程序是依据引用(内存地址)判断相同的,在添加物体时的普遍规则是如果轨道系统中有相同的对象则报错,此处需要在子类中覆盖该方法,不进行对象相同检查。

2)对于Track类,程序中采用值相等(轨道半径相等)的方法判断对象相同,因此可以使用FlyWeight设计模式进行优化。对于一个轨道半径的轨道只建立一个实例。

3)使用ObjectPool思想修改CommonObject的初始化,在初始化中,因为不考虑绝对位置,所以每次将位置初始化为Position(0,0),在这里选择创建一项存储在ObjectPool中。

HIT 软件构造2019春 Lab5 问题解决

4)使用 ”” 而不是用new String方法声明字符串变量

 

 

                                                   我是迷人的小尾巴


以下外链,利益相关,欢迎浏览ε≡٩(๑>₃<)۶ :

济南江鹏工贸有限公司山东济南机械加工),济南彤昌机械科技有限公司山东济南机械加工