在生成器模式中,我们是否需要一个 .build() 方法?
2022-09-04 08:28:26
我有一个关于“有效Java”中涵盖的“生成器模式”的问题。我们是否需要一种方法来正确实现模式?例如,假设我们有以下类:.build()
public class CoffeeDrink {
private int numEspressoShots;
private short milkType;
private boolean withWhip;
private CoffeeDrink() {
}
public static CoffeeDrink buildNewDrink() {
return new CoffeeDrink();
}
public CoffeeDrink withEspresso(int n) {
this.numEspressoShots = n;
return this;
}
public CoffeeDrink withMilkType(shot t) {
this.milkType = t;
return this;
}
public CoffeeDrink withWhip() {
this.withWhip = true;
return this;
}
}
然后我们如何使用它:
CoffeeDrink c = CoffeeDrink.buildNewDrink()
.withEspresso(2)
.withMilkType(2)
.withWhip();
如果我没有静态内部类,这是否仍然有效?我想其中一个优点是,在调用方法之前,它无法创建新对象,但我仍在创建一个对象。只是寻求一些澄清。Builder
CoffeeDrink
.build()
Builder