我正在测试我的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对象,具有两个具体的子类FixedFundingRequest
,TrackerFundngRequest
继承自该对象。这两个子类对象都已加载到ArrayList中,因为我需要方便地存储所有FundingRequest
对象。
但是,我还需要分别访问子类对象,并且-例如,在某些情况下,如果单个ArrayList循环查找FixedFundingRequest
对象,则效率极低。绝大多数是TrackerFundingRequest
个对象。
我正在想象的解决方案是添加代码,以使FundingRequestData
类没有一个,而是三个ArrayList对象,当我正在寻找{{1 }}类:
FundingRequest
根据我的描述(如果不够,我可以提供更多信息),有人可以帮助我理解此设计的陷阱吗?有什么更好的选择?我不知道这种设计是否一定会被皱眉,但这似乎并不正确。再说一遍-没有实现越来越多的类,我不知道有什么替代方法。