顧下幾個方面內容。
1:單例的作用:保證應用程序中,一個(class)類只有一個實例對象。
2:單例的條件:
[list]
[*]
[*] 構造函數是私有的
[*]
[*] 有一個private static 該類型的實例變量
[*]
[*] 通過一個public static 的getInstance的方法,獲取它的引用。繼而調用其中的方法
[/list]
方式一:
public class Singleton {
//構造函數聲明爲private 表示只供內部調用
private Singleton(){};
private static Singleton instance = new Singleton();
public static Singleton getInstance(){
return instance;
}
}
方式二:
public class Singleton {
private Singleton(){};
private static Singleton instance = null;
public synchronized static Singleton getInstance(){
if (null == instance) {
return new Singleton();
}
return instance;
}
}
上面那種形式要更加安全些呢? 大多數的朋友認爲第二種形式要更加安全些