什么是建造者(Builder) ?
- 将一个复杂对象的构建与它表示分离,使得同样的建造过程可以创建不同的表示
个人理解:创建对象的过程相同,构建不同从而产生不同的对象
为什么使用建造者 ?
- 对象比较复杂,初始化参数较多
建造者模式
- 这里我们用 Students 举个🌰
public class Students {
private String name;
private String age;
private String sex;
private Students() {
}
private Students(Builder builder) {
this.name = builder.name;
this.age = builder.age;
this.sex = builder.sex;
}
public static class Builder {
private String name;
private String age;
private String sex;
public Builder setName(String name) {
this.name = name;
return this;
}
public Builder setAge(String age) {
this.age = age;
return this;
}
public Builder setSex(String sex) {
this.sex = sex;
return this;
}
public Students build() {
return new Students(this);
}
}
}
- 使用
Students students = new Students.Builder()
.setAge("18")
.setName("张三")
.setSex("男")
.build();
- 结果
{"age":"18","name":"张三","sex":"男"}