Singleton單例模式主要作用是保證在Java應用程序中,一個類只有一個實例存在。
一般Singleton單例模式有以下幾種形式:
第一種形式: 定義一個類,它的構造函數爲private的,它有一個static的private的該類變量,在類初始化時,通過一個public的getInstance方法獲取對它的引用,繼而調用其中的方法。
public class Singleton {
//私有的構造函數
private Singleton(){}
//在自己內部定義一個自己的對象,這裏是private只供內部調用
private static Singleton instance=new Singleton();
//提供一個供外部訪問這個類的靜態方法,可通過類名直接訪問
public static Singleton getInstance(){
return instance;
}
}
第二種形式:
public class Singleton2 {
private static Singleton2 instance=null;
public static synchronized Singleton2 getInstance(){
//不用每次都進行生成對象,只是第一次,效率比較高
if(instance==null){
instance=new Singleton2();
}
return instance;
}
}
其他形式:定義一個類,它的構造函數爲private的,所有方法爲static的