單例模式的寫法有很多,具體可以參看http://cantellow.iteye.com/blog/838473
這裏只是簡單介紹。
單例模式是一種常用的軟件設計模式。在它的核心結構中只包含一個被稱爲單例類的特殊類。通過單例模式可以保證系統中一個類只有一個實例而且該實例易於外界訪問,從而方便對實例個數的控制並節約系統資源。如果希望在系統中某個類的對象只能存在一個,單例模式是最好的解決方案。
public class Singleton {
private static Singleton instance;
private Singleton (){}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
其實在真正的應用中並不是嚴格就是這麼實現的。
在一些開發應用的過程中,比如SpringMVC當中,只是在啓動的過程中將類的實例注入生成,也就是整個過程也是隻調用一次,所以也就是隻有一個實例,也能做到單例。
注意幾點:
首先構造方法必須是private的,這樣保證該類只能內部實例化,不能在外部被調用的時候實例化。
然後實例對象必須是static變量保證多個調用處共有一個實例。
我是這麼理解的,還有必須加上synchronized鎖,保證這個方法不能被併發訪問,在同一時刻只能有一個類訪問這個靜態方法