你的位置:首页 > Java教程

[Java教程]遇到多个构造器参数时要考虑用构造器

一般的重叠构造器模式:

 

public class NutritionFacts{  private final int one;  private final int two;  private final int three;  public NutritionFacts(int one,int two,int three){   this.one = one;   this.two = two;      }  public NutritionFacts(int one){   this(one,0);  }  public NutritionFacts(int one,int two){   this(one,two,0);  }}//调用的时候 NutritionFacts nt = new NutritionFacts(0,0,0);//缺点 :重叠构造器模式,有许多参数的时候,难编写和阅读;

改进:Builder模式:

public class NutritionFacts{  private final int one;  private final int two;  private final int three;   private NutritionFacts(Bulider builder){   one = builder.one;   two = builder.two;   three = builder.three;  }   public static class Builder{   private String name;   private int one = 0;   private int two = 0 ;   private int three = 0;   public Builder(String name){    this.name = name;   }   public Builder one(int value){     one = value;     reture this;   }   public Builder two(int value){     two = value;     reture this;   }   public Builder two(int value){     two = value;     reture this;   }   //调用的时候,最后实例化外部类   public NutritionFacts build(){    return new NutritionFacts(this);   }     }}