單例模式

單例模式的思想很簡單,就是確保類只有一個實例。

使用它的好處:

    1、控制資源的使用,通過線程同步來控制資源的併發訪問;

     2、控制實例產生的數量,達到節約資源的目的。

     3、作爲通信媒介使用,也就是數據共享,它可以在不建立直接關聯的條件下,讓多個不相關的兩個線程或者進程之間實現通信。

緩存、日誌、創建比較耗時的往往可以設計成單例

下面看看它的兩種模式:

懶漢模式 :

public class SingleDemo {
	int count = 0;
/**
 *懶漢模式 
 **/
	private static SingleDemo singleDemo = null;
	private SingleDemo(){		
	}
	public static SingleDemo newInstance(){
		if(singleDemo == null){
			singleDemo = new SingleDemo();
		}
		return singleDemo;
	}
	//解決多線程的問題,加鎖
	public static SingleDemo newInstance2(){
		if(singleDemo == null){
			singleDemo = new SingleDemo();
		}
		return singleDemo;
	}
}

 

飢漢模式:

	int count = 0;
	/**
	 *飢漢模式 
	 **/
	//全局變量,只有一個
	private static SingleDemo02 singleDemo = new SingleDemo02();
	private SingleDemo02(){		
	}
	//多線程的時候不會出問題,不需要加鎖
	public static SingleDemo02 newInstance(){
		return singleDemo;
	}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章