關於Builder模式
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模式