定义
分步骤创建复杂的对象
类图
代码
public class BuilderPattern {
public static void main(String[] args) {
House build = new House.Builder()
.setDoor(new Door())
.setWall(new Wall())
.setWindow(new Window())
.build();
System.out.println(build);
}
}
class Window{}
class Door{}
class Wall{}
class House{
private Window window;
private Door door;
private Wall wall;
public House(Builder builder){
this.window = builder.window;
this.door = builder.door;
this.wall = builder.wall;
}
static final class Builder{
private Window window;
private Door door;
private Wall wall;
public Builder setWindow(Window window){
this.window = window;
return this;
}
public Builder setDoor(Door door){
this.door = door;
return this;
}
public Builder setWall(Wall wall){
this.wall = wall;
return this;
}
public House build(){
return new House(new Builder());
}
}
}