單例模式:只有一個對象,提供一個全局訪問點
一、經過靜態內部類,獲取單例
/**
* Created by wqc on 2017/10/14.
* http://cantellow.iteye.com/blog/838473
* 單例模式:只有一個對象,提供一個全局訪問點
* 1)Singleton類被裝載了,instance不必定被初始化。由於SingletonHolder類沒有被主動使用,
* 只有顯示經過調用getInstance方法時,纔會顯示裝載SingletonHolder類,從而實例化instance
*
* 2)若是Singleton實現了java.io.Serializable接口,那麼這個類的實例就可能被序列化和復原。
* 無論怎樣,若是你序列化一個單例類的對象,接下來複原多個那個對象,那你就會有多個單例類的實例。
*/
public class Singleton {
private Singleton()
{
}
public static final Singleton getIntance()
{
return InnerSinglenton.singleton;
}
private static class InnerSinglenton{
private static final Singleton singleton = new Singleton();
}
}
二、經過枚舉獲取單例
/**
* Created by wqc on 2017/10/14.
* 枚舉單例:能夠避免多線程同步問題,並且還能防止反序列化從新建立新的對象
*/
public enum EnumSingleton {
INSTANCE;
public void whateverMethod() {
}
}