前言:在我們的實際應用中,經常會出現整個應用中有且只有乙個,比如工具類。連線池,日誌,快取等等。這個時候經常就會考慮用單例設計模式來解決問題。
一.餓漢式單例模式
public class singleton
//自己建立乙個物件,供外界呼叫
private static singleton instance=new singleton();
//給外界提供乙個獲取物件的介面
public static singleton getinstance()
}
二.懶漢式單例模式
public class singleton
//自己建立乙個物件,共外界呼叫
private static singleton instance;
//給外界提供乙個獲取物件的介面
public static singleton getinstance()
return instance;
}}
區別:餓漢式單例模式在類載入的時候速度比較慢,執行的時候速度較快,而且是執行緒安全的。
懶漢式單例模式在類載入的速度比較快,執行的時候速度較慢,但是執行緒是不安全的。
三.執行緒安全的,效能低一點的懶漢式單例模式
public class singleton
//自己建立乙個物件,共外界呼叫
private static singleton instance;
//給外界提供乙個獲取物件的介面,但是是執行緒安全的,一次只有乙個執行緒走進去
public static synchronized singleton getinstance()
return instance;
}}
四.執行緒安全帶的,效能較高的懶漢式單例模式
public class singleton
//自己建立乙個物件,共外界呼叫
private static singleton instance;
//給外界提供乙個獲取物件的介面
public static singleton getinstance()
}
}
return instance;
}
模式的秘密 單例模式
1,單例模式分 餓漢模式和懶漢模式。餓漢模式 在載入類的時候就自動建立 懶漢模式 在載入類的時候只宣告,只有在呼叫的時候才建立。單例模式 最重要的是通過構造方法私有化,限制外部初始化例項,在內部建立,通過static關鍵字,使得外部可以通過類名呼叫方法,獲取類唯一例項。餓漢模式例項 package ...
模式的秘密 單例模式
應用場景 讀取配置檔案的類 配置檔案一般不變,只要有乙個類就夠了 計數器 資料庫連線池 經常去new的話很耗資源 severlet 1,單例模式分 餓漢模式和懶漢模式,雙重檢測鎖式,靜態內部類 存在反射漏洞 列舉單例 缺點 無法實現懶載入 餓漢模式 在載入類的時候就自動建立 懶漢模式 在載入類的時候...
模式的秘密 單例模式
1,單例模式分 餓漢模式和懶漢模式。餓漢模式 在載入類的時候就自動建立 懶漢模式 在載入類的時候只宣告,只有在呼叫的時候才建立。單例模式 最重要的是通過構造方法私有化,限制外部初始化例項,在內部建立,通過static關鍵字,使得外部可以通過類名呼叫方法,獲取類唯一例項。餓漢模式例項 package ...