設計模式 - Singleton in Java

殷老實發表於2016-10-20

遇到任何一件事情都可以使用三個單詞來解決。 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, 大家可以自己體會下。



有問題歡迎指出。



相關文章