1. 程式人生 > >關於Builder模式

關於Builder模式

bean back color strong 優勢 business 設置 private string

builder模式是什麽?

builder模式是設計模式的一種,從名詞方面來解析就是構建。

builder模式優勢在哪裏?
它比javaBean模式具有更強的靈活性。

實例分析
javaBean與builder模式構建實例比較

package system.info;
/*
* 以業務類型類作為樣板,包含javaBean和Builder兩種構建方式
*/
public class TBusinessType {

//javaBean 模式 start
private Long id;
private java.lang.String name;
private java.lang.String code;

public java.lang.Long getId() {
return this.id;
}

public void setId(java.lang.Long id) {
this.id = id;
}

public java.lang.String getName() {
return this.name;
}

public void setName(java.lang.String name) {
this.name = name;
}

public java.lang.String getCode() {
return this.code;
}

public void setCode(java.lang.String code) {
this.code = code;
}

public TBusinessType() {
}

public TBusinessType(java.lang.Long id, java.lang.String name,
java.lang.String code) {
this.id = id;
this.name = name;
this.code = code;
}
//javaBean 模式 end



/*
* Builder 模式 start
*/
public static class Builder{
private Long id;
private java.lang.String name;
private java.lang.String code;

public Builder setName(java.lang.String name){
this.name = name;
return this;
}

/*

還回構建類本身實例才是重點,方法不是最重要的

*/
public Builder setCode(java.lang.String code){
this.code = code;
return this;
}
public Builder setId(java.lang.Long id){
this.id = id;
return this;
}

/*
主要函數 ,以構建器類作為參數導入TBusinessType構造函數,這才是 */

public TBusinessType build(){

return new TBusinessType(this);


}
}
public TBusinessType(Builder t) {
this.id = t.id;
this.name = t.name;
this.code = t.code;
}
/*
* Builder 模式 end
*/
public static void main(String args[]){

TBusinessType type1 = new TBusinessType();//javabean 模式 ,調用的時候有可能會漏掉一兩個字段參數沒設置,這是經常會發生的。
type1.setCode("ttt");
type1.setName("tttt");
type1.setId(100l);


TBusinessType type2 = new TBusinessType.Builder() //builder模式,代碼看起來是不是更優雅?
.setCode("tttt")
.setName("ttt")
.setId(100l).build();




}


}

總結:builder模式確實用起來比較方便,可擴展性強

關於Builder模式