一般的重疊構造器模式:
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);
}
}
}