設計模式-單例模式

單例模式作用:確保系統中一個類只產生一個實例

單例模式的好處:(1)對於頻繁使用的對象,可以省去創建所花費的時間

(2)由於new操作的次數減少,因而對系統內存的使用頻率也會降低,減輕GC的壓力,縮短GC停頓的時間

單例模式的參與者及基本結構


代碼如下

package com.lohocc.design;

/**
 * @author lohocc
 * @Date 2015年6月26日
 * 懶漢方式
 */
public class Singleton {
	/**
	 * 1.私有的構造方法
	 * */
	private Singleton(){}
	
	/**
	 * 2.私有的靜態變量
	 * */
	private static Singleton singleton;
	//餓漢方式  private static Singleton singleton = new Singleton();
	
	/**
	 * 3.public的getInstance()
	 * */
	public synchronized static Singleton getInstance(){
		if(singleton == null){
			singleton = new Singleton();
		}
		return singleton;
	} 
}
懶漢模式比起餓漢模式的優點是對象不會隨着類的加載而加載,只有第一次調用getInstance()方法的時候纔會生成對象,但是由於加入了同步關鍵字,在多線程的環境下效率反而比餓漢慢,可以使用靜態內部類的方式從而避免使用synchronized 關鍵字


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