DesignPattern-Singleton

Singleton 單例模式

單例模式在開發中也算是一種常見的設計模式了
主要訴求是希望某個類只有一個實例,同時使用單例模式也保證了這個類只有一個全域的訪問點,外面的人不用new來new去了

來看常見的Singleton模版:

Class SingletonClass{
	static SingletonClass instance;
	private SingletonClass(){
		//init...
	}
	public static SingletonClass getInstance(){
		if(instance == null){
			instance = new SingletonClass();
		}
		return instance;
	}
	// do other things...
}

可以看到有三個重點:

  1. 裡面有一個field 叫做 instance ,這玩意代表的就是這個類自己
  2. 要私有化構造方法,因為我們不希望外面的人可以直接創建這個類的實例,只有這個類他自己可以
  3. getInstance 方法就是外部接觸這個類的接觸點了,當其他人去跟這個類要的時候,如果還未創建實例,就會創建一個並且返回給使用者

優點:

缺點:

常見場景:

當然根據你創建對象的模式還可以再細分成懶漢與餓漢模式
這個就有機會我再分享