创建子类代理的问题

时间:2019-12-08 09:36:06

标签: repast-simphony

我有一个城际配送系统仿真模型。代理的类型是“包裹”。在每个交付班次结束时,我想生成一些新的包裹,作为另一种包裹。因此,我创建了一个名为“ Dummy_Parcel”的新类,该类从“ Parcel”类扩展而来。

package intraCity_Simulator;

public class DummyParcel extends Parcel {

    public DummyParcel(int id, int arr_tm, String or_hub, String de_hub, String mode, double wgt, double qty) {
        super(id, arr_tm, or_hub, de_hub, mode, wgt, qty);
        // TODO Auto-generated constructor stub
    }
}

问题在于,当我创建一个新的“ Dummy_Parcel”时,此Dummy_Parcel将记录在“代理表”的Dummy_Parcel选项卡中。此Dummy_Parcel也将出现在“包裹”选项卡中。这导致不必要的重复。如何配置以防止在“包裹”选项卡中显示Dummy_Parcel?批量运行数据收集中也会出现此问题。

enter image description here

1 个答案:

答案 0 :(得分:2)

如果将父类指定为要收集统计信息的类,则代理表以及我相信数据收集将记录父代理类的所有子类。为了更好地分离实现子类,我建议创建一个父抽象类或接口Parcel,然后创建扩展或实现Parcel的子类,例如RealParcel,DummyParcel等。然后仅在数据集合中指定子类,代理表将针对每种子类类型自动具有单独的选项卡。

实际上,子类实际上不需要具有与Parcel不同的任何特定行为-该体系结构可以简单地用于帮助组织数据收集。