void build(){
while(true){
Builder builder = new Builder();
...
}
}
class Builder{
private final Store store = null;
public Builder(){
store = Store.getInstance();
}
}
'商店'实现为标准单例类,如下所示: https://en.wikipedia.org/wiki/Singleton_pattern
我希望Store对象只会初始化一次并且在' while'循环相同的'存储'将在多个" builder"内创建并返回对象。由于整个循环而产生的对象。这有保证吗?如果定义" store"作为Builder的静态变量?
答案 0 :(得分:1)
我希望Store对象只会初始化一次并且在 'while'循环将创建并返回相同的'store'对象 由于整个循环,在多个“构建器”对象内部。这是 保证?
是的,如果Store
对象实现为Singleton
,则会有一个static
对象实例,这是由关键字Singleton
引起的。
如果将“store”定义为Builder的静态变量呢?
您可能会也可能不会这样做,具体取决于您的需求,但如果您确实需要private final Store store = null;
(which in many cases you don't),您可能希望将其存储在单独的类中,只是为了使代码更多结构
此外,您不需要Store
,因为您可能始终使用Store.getInstance()
访问test1
{同一个实例}。
答案 1 :(得分:0)
由于Store
的实例在其类中是静态的,因此调用getInstance()
不应创建新的Store
。 getInstance()
只会返回您在单身人士中应该拥有的private static final Store instance
。
来自wikipedia页面:
单例模式的实现必须:确保只存在单例类的一个实例;和 提供对该实例的全局访问。