首页 > 代码库 > 关于Builder模式
关于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模式