数据模型类可以为一个抽象对象及其子对象保存多个列表吗?

时间:2018-10-31 14:39:31

标签: java list oop subclassing datamodel

我正在测试我的Java知识和我的OOP技能。我正在处理的项目现在有一个单例数据模型类,该类使用ArrayList数据结构。

public class FundingRequestData {
    private ArrayList<FundingRequest> fundingRequests;

    private static FundingRequestData instance = new FundingRequestData();

    public static FundingRequestData getInstance() { return instance; }

    public FundingRequestData() {
        this.fundingRequests = new ArrayList<>();
    }

    public FundingRequestData(ArrayList<FundingRequest> fundingRequests) {
        this.fundingRequests = fundingRequests;
    }

    public void add(FundingRequest newFundingRequest) {
        this.fundingRequests.add(newFundingRequest);
    }

    public ArrayList<FundingRequest> getFundingRequests() {
        return fundingRequests;
    }
}

ArrayList保存着FundingRequest类型的对象,它实际上是一个Abstract对象,具有两个具体的子类FixedFundingRequestTrackerFundngRequest继承自该对象。这两个子类对象都已加载到ArrayList中,因为我需要方便地存储所有FundingRequest对象。

但是,我还需要分别访问子类对象,并且-例如,在某些情况下,如果单个ArrayList循环查找FixedFundingRequest对象,则效率极低。绝大多数是TrackerFundingRequest个对象。

我正在想象的解决方案是添加代码,以使FundingRequestData类没有一个,而是三个ArrayList对象,当我正在寻找{{1 }}类:

FundingRequest

根据我的描述(如果不够,我可以提供更多信息),有人可以帮助我理解此设计的陷阱吗?有什么更好的选择?我不知道这种设计是否一定会被皱眉,但这似乎并不正确。再说一遍-没有实现越来越多的类,我不知道有什么替代方法。

0 个答案:

没有答案