閱讀794 返回首頁    go 阿裏雲 go 技術社區[雲棲]


【設計模式】【單例模式】

/**
 * Description:
 * <br/>網站: <a href="https://www.crazyit.org">瘋狂Java聯盟</a> 
 * <br/>Copyright (C), 2001-2012, Yeeku.H.Lee
 * <br/>This program is protected by copyright laws.
 * <br/>Program Name:
 * <br/>Date:
 * @author  Yeeku.H.Lee kongyeeku@163.com
 * @version  1.0
 */
class Singleton
{
	//使用一個變量來緩存曾經創建的實例
	private static Singleton instance;
	//將構造器使用private修飾,隱藏該構造器
	private Singleton(){}
	//提供一個靜態方法,用於返回Singleton實例
	//該方法可以加入自定義的控製,保證隻產生一個Singleton對象
	public static Singleton getInstance()
	{
		//如果instance為null,表明還不曾創建Singleton對象
		//如果instance不為null,則表明已經創建了Singleton對象,將不會執行該方法
		if (instance == null)
		{
			//創建一個Singleton對象,並將其緩存起來
			instance = new Singleton();
		}
		return instance;
	}
}
public class SingletonTest
{
	public static void main(String[] args)
	{
		//創建Singleton對象不能通過構造器,隻能通過getInstance方法
		Singleton s1 = Singleton.getInstance();
		Singleton s2 = Singleton.getInstance();
		//將輸出true
		System.out.println(s1 == s2);
	}
}


最後更新:2017-04-04 07:03:38

  上一篇:go android 之斷點續傳詳解三部曲之[二] → 斷點續傳下載
  下一篇:go 深入了解Struts2返回JSON數據的原理及具體應用範例