一,应用场景,
- 复杂对象的创建和表示分离
- 当一个类的内部数据过于复杂的时候(通常是负责持有数据的类,比如Config、VO、PO、Entity...)
二,具体应用场景
- 相同的方法,不同的调用顺序产生的结果不一样
- 多个组件都可以组装在同一个对象上,但是产生的结果不一样
例子:警告框的多种展示方式、各个组件组装摩托车 - 当一个类特别复杂的时候,并且初始化默认参数(网络请求)
三,简单实现代码如下
public final class Student {
private Student(Builder b) {
this.id = b.id;
this.name = b.name;
}
private int id;
private String name;
public static class Builder {
private int id;
private String name;
public Builder setId(int id) {
this.id = id;
return this;
}
public Builder setName(String name) {
this.name = name;
return this;
}
public Student build() {
return new Student(this);
}
}
}
四,使用方式
Student stu = new Student.Builder().setId(0).setName("name").build()









网友评论