Builder模式

Builder模式就是不直接生成想要的對象,而是讓客戶端利用所有必要的參數(shù)調(diào)用構(gòu)造器,得到一個builder對象。然后再builder對象上調(diào)用類似setter的方法,來設(shè)置每個相關(guān)的可選參數(shù)。
最后,客戶端調(diào)用無參數(shù)的build方法來生成不可變的對象。(此篇文章為自己總結(jié),如有錯誤歡迎糾正,謝謝。)

例子:

package com.cn.test;

public class A {

private int a;
private int b; 
private String c;
private String d;

public static class Builder {
private int a ;
private int b;
private String c;
private String d;
              
public Builder(int a,int b){}
       this.a = a;
       this.b = b;
  }
         
public Builder setC(String c) {                   
      this.c = c;        
      return this;
  }
              
public Builder setD(String d) {            
      this.d = d;              
      return this;
  }
              
public A build() {           
      return new A(this);//很關(guān)鍵 只有調(diào)用this的構(gòu)造函數(shù)才能賦值
  }
}

public A() {
 }

       
private A(Builder builder) {
      a = builder.a;
      b = builder.b;
      c = builder.c;
      d = builder.d;
  }
}

調(diào)用:
A a = new A.Builder(1, 2).setC("c").setD("d").build();

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容