106建造者模式

48 阅读1分钟

定义

分步骤创建复杂的对象

类图

图片1.png

代码

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());
    }
    }
}