从我的DTO创建列表

时间:2011-12-28 07:41:29

标签: java list object dto getter-setter

我有一年的对象。现在让我们说只有两年,它的吸气剂和制定者

private String mYearOne;
private String mYearTwo;
public String getmYearOne() {
    return mYearOne;    }
public void setmYearOne(String mYearOne) {
    this.mYearOne = mYearOne;   }
public String getmYearTwo() {
    return mYearTwo;    }
public void setmYearTwo(String mYearTwo) {
    this.mYearTwo = mYearTwo;   }

然后每年有三个保险计划。它的吸气剂和制定者。

private String healthPlan;
private String carPlan;
private String housePlan;
private String healthPlanTwo;
private String carPlanTwo;
private String housePlanTwo;
public String getHealthPlan() {
    return healthPlan;  }
public void setHealthPlan(String healthPlan) {
    this.healthPlan = healthPlan;   }
public String getCarPlan() {
    return carPlan; }
public void setCarPlan(String carPlan) {
    this.carPlan = carPlan; }
public String getHousePlan() {
    return housePlan;   }
public void setHousePlan(String housePlan) {
    this.housePlan = housePlan; }
public String getHealthPlan() {  //For the second year
    return healthPlan;  }
public void setHealthPlan(String healthPlan) {
    this.healthPlan = healthPlan;   }
public String getCarPlan() {
    return carPlan; }
public void setCarPlan(String carPlan) {
    this.carPlan = carPlan; }
public String getHousePlan() {
    return housePlan;   }
public void setHousePlan(String housePlan) {
    this.housePlan = housePlan; }
public String getHealthPlanTwo() {
    return healthPlanTwo;   }
public void setHealthPlanTwo(String healthPlanTwo) {
    this.healthPlanTwo = healthPlanTwo; }
public String getCarPlanTwo() {
    return carPlanTwo;  }
public void setCarPlanTwo(String carPlanTwo) {
    this.carPlanTwo = carPlanTwo;   }
public String getHousePlanTwo() {
    return housePlanTwo;    }
public void setHousePlanTwo(String housePlanTwo) {
    this.housePlanTwo = housePlanTwo;   }

你会发现代码很笨重。我需要在<list>年内定义它们。因此,如果考虑10年,我将有10倍 由3 = 30个计划及其吸气剂和制定者分别。

怎么可以这样做?

3 个答案:

答案 0 :(得分:1)

我在这里看到了设计/域建模问题。理想情况下,一个人可以在每个计划中附加多个“计划”和“骑手”。这应该通过创建“PlanCollection”类或简单地维护一个“计划”列表来清楚地抽象出来,这些“计划”都扩展/实现了一个共同的“计划”类/接口。

每个计划都可以有“计划”持续时间和开始日期。此外,从逻辑上讲,您不会将计划附加到“年”,但时间线信息会封装在计划本身中(如上所述的开始和持续时间)。

答案 1 :(得分:1)

我认为你最好的选择是维持保险计划的年数和arraylists数。通过这种方式,您可以获得一次arraylist并获得您实际想要的任何年份的保险计划详细信息。这将是一个保险计划arraylist和一个arraylist多年的特点。

private ArrayList mYear;
private ArrayList healthPlan;
private ArrayList carPlan;
private ArrayList housePlan;

public String getHousePlanForYear(String year){
return housePlan.get(mYear.indexOf(year));
}

public void setHousePlanForYear(String housePlan, String year){
this.housePlan.set(mYear.indexOf(year), housePlan);
}

同样适用于其他计划。当然,所有这一切都假设年份总是存在和其他边界条件。只需在这些getter和setter中添加边界检查,您就可以开始了。 :)

答案 2 :(得分:1)

查看枚举和地图。枚举将指定汽车,房屋等。

您可以创建一个以枚举作为键和年份列表作为键的映射。不要试图创建YearThree等。

关于样式的注释:如果您打算使用m作为字段前缀,请使用setter的m out 。例如。 setYearOne not setmYearOne。

明智地选择你的类型,如果int更好,不要使用String。