我正在构建一个基于 Joshua 的构建器模式的构建器。我的问题是如何使它成为单例?详细说明我的观点,如果我有以下构建器
public class Widget {
public static class Builder {
private String name;
public Builder( String name) {
this.name = name;
}
public Widget build() {
Widget result = new Widget(this);
return result;
}
public Builder model( String value ) {
this.model = value;
return this;
}
}
private final String name;
private Widget( Builder b ) {
this.name = b.name;
}
// ... etc. ...
}
我会从另一个类中调用这个构建器,比如 new Widget.Builder().name("abc").build().......
但是如果我只想要这个小部件的一个实例,或者我需要从多个地方访问这个小部件,而不是每次都创建一个新的,该怎么办。理想情况下,我想将实例化限制在 Widget 类中。有什么想法吗?