我有一年的对象。现在让我们说只有两年,它的吸气剂和制定者
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个计划及其吸气剂和制定者分别。
怎么可以这样做?
答案 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。