2011-12-28 4 views
0

나는 1 년 개체가 있습니다. 지금은 단지 2 년의 getter 및 setter 내 DTO에서 목록 만들기

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; } 

그리고 매년 세 보험 계획을 가지고

말할 수 있습니다. 그리고 그것의 getters와 세터.

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 년을 고려한다면, 나는 3 = 30 계획에 의해 에 10을 곱하고 그 getter와 setter를 각각 가질 것입니다.

어떻게이 작업을 수행 할 수 있습니까?

답변

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); 
} 

다른 계획과 마찬가지로. 물론이 모든 것은 올해가 항상 존재하고 다른 경계 조건이라고 가정합니다. 이 게터와 세터에 경계 체크를 추가하기 만하면됩니다. :)

+0

예제에서 void 메서드는 반환 형식을 가질 수 있습니까? –

+0

hehe .. 미안 .. 그게 내가 간과 한 실수 였어. 데려와 줘서 고마워! – Neo

1

여기 디자인/도메인 모델링 문제가 있습니다. 사람은 이상적으로 각 계획에 여러 개의 "계획"과 "라이더"를 첨부 할 수 있습니다. 이것은 "PlanCollection"클래스를 생성하거나 공통 "Plan"클래스/인터페이스를 확장/구현하는 "Plan"목록을 유지함으로써 적절하게 추상화되어야합니다.

각 계획은 "계획"기간과 시작 날짜를 가질 수 있습니다. 또한 논리적으로 "연도"에 대한 계획은 첨부하지 않지만 타임 라인 정보는 계획 자체에 캡슐화됩니다 (위에서 언급 한 시작 및 기간과 같음).

1

enums 및 맵을 살펴보십시오. 열거 형은 자동차, 집 등을 지정합니다.

enum을 키로 사용하고 Year를 키로 사용하는 맵을 만들 수 있습니다. YearThree 등을 만들지 않으려 고하지 마십시오.

스타일 메모 : 필드 앞에 m을 붙이면 m 을 세터의 개로 가져옵니다. 예 : setYearOne은 setmYearOne이 아닙니다.

유형을 현명하게 선택하고 int가 더 좋은 경우 String을 사용하지 마십시오.