我知道关于构建器模式有几个问题。
-在子类的构造器中使用构建器模式
-什么时候使用构建器模式
- Java 改进特定类
的构建器模式
-构建器设计模式为什么我们需要导向器
到目前为止,我使用了 Bloch Item 2 中描述的构建器模式。
昨天我改变了一些小细节。我为默认值添加了一个公共构造函数。因此,您可以将 Builder 用于复杂对象,也可以将构造函数用于具有必要值的简单对象。
public class Blub {
private final String id;
public Blub( final String id ) {
this( Blub.Builder(id) );
}
private Blub( Builder builder ) {
this.id = builder.id;
}
public static class Builder {
private final String id;
public Builder( final String id ) {
this.id = id;
}
public Blub build() {
return new Blub(this);
}
}
}
但我不确定这是否存在设计缺陷。因为如果我完成课程,我确信没有缺点。因此,在简单的情况下,可以调用 Blub 构造函数。
new Blub("1a");
代替
(new Blub.Builder("1a")).build();
但是,如果我不最终确定类,则可以扩展它并在新的构造函数中做各种事情。而且我不确定现在是否没有案例可以解决这个问题。任何想法?