小编tar*_*n95的帖子

Singleton设计模式java idioma

我很困惑.我在java中发现了许多Singleton Design Pattern的实现.我发现的其中一个实现如下:

public class MySingleton {

    private static class Loader {
        static MySingleton INSTANCE = new MySingleton();
    }

    private MySingleton () {}

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

如下所述:https://stackoverflow.com.现在,如果这个实现应该工作,为什么不以下?

public class MySingleton {

    private static final MySingleton INSTANCE = new MySingleton();

    private MySingleton () {}

    public static MySingleton getInstance() {
        return INSTANCE;
    }
}
Run Code Online (Sandbox Code Playgroud)

我搜索了java如何处理初始化,但找不到任何显示后面的代码将无法正常工作.相反,我发现了以下内容:stackoverflow.com,它指出每个静态初始化都发生在调用类的静态方法之前,因此当访问INSTANCE(getInstance)的唯一方法是,则应该初始化持有单例实例的静态字段.调用.所以是的,我真的很困惑:如果这段代码有效,为什么不使用这个简单版本的单例设计模式呢?

java singleton design-patterns idioms

4
推荐指数
1
解决办法
102
查看次数

标签 统计

design-patterns ×1

idioms ×1

java ×1

singleton ×1