特点:创建的对象不能更改属性,所以只有get方法
不能通过new 创建对象,所以构造方法是private的
链式的调用,所以通过builder设置属性返回的是this对象。
根据平常使用protobuf对接的流程:
通过newBuilder方法返回一个Builder
通过调用Builder的方法设置属性
属性设置完通过build()方法返回对象,对象不可改变,只能获取属性
所以建造者模式的代码如下
public class BuildClass {
private String name;
private String id;
private BuildClass(){}
// 只提供get方法
public String getName(){
return name;
}
public String getId(){
return id;
}
// 内部类builder
private static class Builder{
//builder会调用各种方法填充属性,所以要返回的对象是一个属性
private BuildClass buildClass = new BuildClass();
//返回this对象
public Builder setName(String name){
buildClass.name = name;
return this;
}
public Builder setId(String id){
buildClass.id = id;
return this;
}
//builder有一个build方法返回真正的对象
public BuildClass build(){
return buildClass;
}
}
//提供一个newBuild方法
public static Builder newBuilder(){
return new Builder();
}
}
调用:
BuildClass build = BuildClass.newBuilder().setName("name").setId("id").build();
网友评论