設計模式——單例模式

1 簡介

保證一個類中,僅有一個實例,並提供一個訪問它的全局訪問點。要點如下:

  • 該類只有一個實例
  • 它必須自行創建這個實例
  • 它必須自行向整個系統提供這個實例

2 代碼

2.1 餓漢模式

類加載時就生成了一個對象。

public class Singleton {
	private static final Singleton singleton=new Singleton();
	
	private Singleton() {}
	
	public static Singleton getSingleton() {
		return singleton;
	}
}

2.2 懶漢模式

類加載時沒有生成對象,在第一次調用 getInstance() 方法時才生成對象。

public class Singleton {
	private static Singleton singleton=null;
	
	private Singleton() {}
	
	public synchronized static Singleton getSingleton() {
		if(singleton==null) {
			singleton=new Singleton();
		}
		return singleton;
	}
}

2.3 雙重檢驗模式

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