單例:即只存在一個實例
public class Singleton {
/**
* 構造方法私有化
*/
private Singleton(){
}
/**
* 私有的內部靜態類,使用了加載外部類的時候內部類不會立即加載的特性
* @author Sky
*
*/
private static class SingletonHolder{
public static Singleton mInstance = new Singleton();
}
/**
* 暴露一個方法取得單例對象的實例
* @return
*/
public static Singleton getInstance(){
return SingletonHolder.mInstance;
}
}
這種方式不僅可以確保線程安全,也能夠保證單例對象的唯一性,同時也延遲單例對象的初始化