相关疑难解决方法(0)

正确实现按需初始化持有者习惯用法

我有两个版本的"初始化按需持有人成语":

  1. http://en.wikipedia.org/wiki/Initialization-on-demand_holder_idiom
  2. http://en.wikipedia.org/wiki/Singleton_pattern#The_solution_of_Bill_Pugh

上面的主要区别是第一个被宣布INSTANCE私有,但第二个被宣布INSTANCE公共.

请告诉我应该使用哪一个.


对不起,我没有发现在我的应用程序中使用privatepublic之间的区别:

public class Singleton {
    private int x;
    public int getX() {
        return x;
    }

    private Singleton () {}

    private static class LazyHolder {
        //both private and public works
        private static final Singleton INSTANCE = new Singleton();
    }

    public static Singleton getInstance() {
        return LazyHolder.INSTANCE;
    }
}
Run Code Online (Sandbox Code Playgroud)

我唯一要做的就是调用类似的东西Singleton.getInsance().getX(),因此两个版本都有效.因此,我想知道使用它们的情况.

java concurrency design-patterns

12
推荐指数
1
解决办法
1万
查看次数

标签 统计

concurrency ×1

design-patterns ×1

java ×1