关于java:避免使用Singleton的多个实例?

Avoid multiple instances of Singleton?

本问题已经有最佳答案,请猛点这里访问。

(P)I believe when a singloton object gets serialized and is they desarralized upon a pletora of times in series,there are multiple instances of singlotons created.(p)(P)你怎么能改变现状?(p)


Joshua Bloch谈到使用EnUM作为单元格以避免Java中的这个特定问题。看看这篇文章:为什么Enums是更好的单例-或者-直接从bloch这里阅读它。


通常,在创建单例时,要确保只有一个实例。你可以这样做:

1
2
3
4
5
6
7
8
9
10
11
12
13
public static class Singleton{
    private final static Singleton instance;

    private Singleton(){}

    public static Singleton getInstance(){
        if(instance == null)
            instance = new Singleton();
        return instance;
    }


}

将构造函数放到private中可以确保除此类之外没有其他人可以创建singleton的实例。

您只需要使用getInstance调用singleton,singleton就可以完成它的所有工作。