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

1.單例設計模式:一個類只能有一個對象

1.1 創建單例類的步驟:

    1.將構造方法私有化

    2.創建私有的靜態成員變量

    3.共有的靜態成員方法,提供當前的唯一對象

 

1.2 創建單例的兩種方式:

      1.餓漢式 -- 一開始執行時就先給單例類對象賦值

//方式一:餓漢式  一開始執行,就先給單例類對象賦值
class SingleInstance{
	//在單例類的內部創建了一個私有化對象
	private final static SingleInstance singleInstance = new SingleInstance();
	
	//構造方法私有化
	private SingleInstance() {
				
	}
	//建立一個public方法,將單例類對象提供出去
	public static SingleInstance getSingleInstance() {
		return singleInstance;
	}

	//單例類的功能區

}

    2. 懶漢式 -- 一開始爲null,什麼時候使用,就什麼時候賦值

        懶漢式我們這裏討論考慮線程安全的情況。需要用synchronized關鍵字進行加鎖,保證線程安全。

//懶漢式 
class SingleInstance{
	private static SingleInstance instance = null;
	private SingleInstance() {
		
	}
	public static SingleInstance getInstance() {
		if(instance == null ) {//編寫最外層的if,是爲儘量少的判斷線程同步,提高效率
			synchronized (SingleInstance.class) {//獲取當前類的字節碼充當同步代碼塊的鎖,讓多個線程之間互斥  
				if(instance == null) {
					instance = new SingleInstance();
				}
			}
		}
		return instance;
	}
	//工作位置
}

 

 

 

 

 

 

發佈了23 篇原創文章 · 獲贊 20 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章