实现构建器模式

Luc*_*ier 1 java builder

我已经看到了两种实现构建器模式的流行方法:

// 1. The build() approach
Product p = builder.part1()
                   .part2()
                   .build();

// 2.The constructor approach
builder.part1()
       .part2();
Product p = new Product(builder);
Run Code Online (Sandbox Code Playgroud)

哪个更好?

ΦXo*_*a ツ 7

第一个是要走的路......

如果你使用第二选择,那么这样做:

Product p = new Product(builder);
Run Code Online (Sandbox Code Playgroud)

将依赖项添加到Product类..

这意味着Product类现在至少需要一个带参数构建器的构造函数