設計模式 - Singleton in Java

遇到任何一件事情都可以使用三個單詞來解決。 what / Why / How


什麼是Singleton?

它一種設計模式,在這種模式下我們只能夠對某個類進行實例化一次


爲什麼要使用Singleton?

當一個對象需要對整個系統進行操作或者監控的時候 例如 任務管理器 或者 當系統中只存在某類一個對象時,系統的效率最高等。


怎麼樣實現singleton in java?


首先看一下singleton的類圖


那麼我們不難理解,在java中我們就簡單的將某個類的構造函數給私有化( private ),然後使用另外一個靜態的方法代替構造函數並檢測 instance對象是否爲空。

public class ClassicSingleton {
	private int a = 0;
	private static ClassicSingleton instance = null;
	private ClassicSingleton() {
		this.a++;
	}
	
	public static ClassicSingleton getInstance() {
		if (instance == null) {
			instance = new ClassicSingleton();
		}
		
		return instance;
	}
	public int getValue() {
		return this.a;
	}
}


測試代碼

public class test {
	public static void main(String[] args) {
		ClassicSingleton obj = ClassicSingleton.getInstance();
		System.out.println(obj.getValue());
		ClassicSingleton obj2 = ClassicSingleton.getInstance();
		System.out.println(obj2.getValue());
	}
}


輸出結果都是1, 大家可以自己體會下。



有問題歡迎指出。



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