個人備忘:
在進行程式開發的時候,有些物件可能只需要乙個,比如:配置檔案、工具類、執行緒池、快取、日誌物件等。這時如果建立多個例項,就會出現占用過多資源、結果不一致等問題。單例模式可以保證應用中某個例項有且只有乙個。
惡漢模式:在類載入的時候就建立類的唯一例項,不管使用者是否呼叫、獲取例項。
public class singleton
//2.建立類的唯一例項,使用private static
private static singleton instance = new singleton();
//3.提供乙個用於獲取例項的方法,使用public static
public static singleton getinstance()
}
懶漢模式:當類載入的時候並沒有建立類的唯一例項,而是當使用者獲取的時候才做判斷,如果為空才建立例項。
public class singleton2
//2.建立類的唯一例項,使用private static
private static singleton2 instance;
//3.提供乙個用於獲取例項的方法,使用public static
public static singleton2 getinstance()
return instance;
}}
區別:惡漢模式的特點是載入類時比較慢,但執行時獲取物件的速度比較快,執行緒安全。
懶漢模式的特點是載入類時比較快,但執行時獲取物件的速度比較快,執行緒不安全。
抽空學習下其他的單例模式詳解:
Java設計模式 單例模式
單例模式 singleton 顧名思義,就是乙個類只有乙個例項。作為物件的建立模式,單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。顯然單例模式的要點有三個 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。從具體...
java設計模式 單例模式
這個模式是很有意思,而且比較簡單,但是我還是要說因為它使用的是如此的廣泛,如此的有人緣,單例就是單 一 獨苗的意思,那什麼是獨乙份呢?你的思維是獨乙份,除此之外還有什麼不能山寨的呢?我們舉個比較難複製的物件 皇帝中國的歷史上很少出現兩個皇帝並存的時期,是有,但不多,那我們就認為皇帝是個單例模式,在這...
java設計模式 單例模式
單例模式介紹 單例模式分 懶漢式單例 餓漢式單例。單例模式有一下特點 1 單例類只能有乙個例項。2 單例類必須自己自己建立自己的唯一例項。3 單例類必須給所有其他物件提供這一例項。單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。單例有併發問題,只有乙個例項,多個執行緒就可能同...