Java筆試題——Singleton單例模式
Singleton模式主要作用是保證在Java應用程式中,一個類Class只有一個例項存在。
第一種形式: 定義一個類,它的建構函式為private的,它有一個static的private的該類變數,在類初始化時例項話,通過一個public的get方法獲取對它的引用,繼而呼叫其中的方法。
public class Singleton { private Singleton() { } // 在自己內部定義自己一個例項,注意這是private 只供內部呼叫 private final static Singleton s = new Singleton(); // 這裡提供了一個供外部訪問本class的靜態方法,可以直接訪問 public static Singleton get() { return s; } }
第二種形式:
public class Singleton {
private static Singleton s = null;
public static synchronized Singleton get() {
// 這個方法比上面有所改進,不用每次都進行生成物件,只是第一次
// 使用時生成例項,提高了效率!
if (s == null)
s = new Singleton();
return s;
}
}
其他形式: 定義一個類,它的建構函式為private的,所有方法為static的。一般認為第一種形式要更加安全些