1. 程式人生 > >設計模式-建立型:單例模式(1)

設計模式-建立型:單例模式(1)

有的程式碼寫過,不再想起;有的程式碼複製粘貼後,還將回首。

上個專案已經進入收尾,利用年前的閒暇,對設計模式進行一個較為完整的學習。

這次主要參考《漫談設計模式:從面相物件開始》進行學習,程式語言將會使用java來描述。

OK, Let's go!


建立型:單例模式

如果我們需要保證系統內對於某個類最多隻能存在一個例項的時候,我們就會使用單例模式。例如快取池,資料連線池,執行緒池等。在多執行緒環境下,為了保證單一例項其實並不簡單。

public class Singleton {

	private static Singleton instance = new Singleton();

	private Singleton() {

	}

	public static Singleton getInstance() {
		return instance;
	}

}

最簡單的單例模式

為了防止類隨意被建立,所以類的構造方法是私有的。


將構造方法宣告為private,所以無法通過new 關鍵字建立新的例項,只能通過getInstance方法獲得。並且這種實現時執行緒安全的。

因為JVM只加載類的時候,對於static屬性的初始化只能由一個執行緒載入執行一次。

下一篇我們將學習如何在使用的時候才去例項化,而不是載入這個類的時候就建立例項。