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