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

    xiaoxiao2024-12-05  54

     

    Update 5/26/2019

    CheckStyle in IDEAOQL in MATOptimization for IODesign Pattern

     

    CheckStyle in IDEA

     

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

     

    打开IDEA的自动导包功能:

    修改项目中Tab和缩进设置

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

    修改项目设置

    取消使用*自动导入包

    按照包名的字典序导入包

    最后右击项目src,Format Code。

     

    OQL In MAT

     

    MAT OQL Syntax Link:https://help.eclipse.org/oxygen/index.jsp?topic=/org.eclipse.mat.ui.help/reference/oqlsyntax.html

     

    1)TrackCircularOrbit类的实例

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

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

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

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

    如图:

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

     

    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中。

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

     

     

                                                       我是迷人的小尾巴


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

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

    最新回复(0)