單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。在計算機系統中,執行緒池、快取、印表機等驅動程式物件常被設計成單例。例如:每台計算機可以有若干個印表機,但只能有乙個printer spooler(列印後台處理服務),以避免兩個列印作業同時輸出到印表機中。總之,選擇單例模式就是為了避免不一致的狀態。
1.單例類只能有乙個例項。
2.單例類必須自己建立自己的唯一例項。
3.單例類必須給所有其他物件提供這一例項。
單例物件保證了全域性物件的唯一性,比如系統啟動讀取配置檔案就需要單例保證配置的一致性。
1.餓漢式單例(立即載入)
public class singleton1
private static singleton1 single=new singleton1();
//靜態工廠方法
private static singleton1 getinstance()
}
2.懶漢式單例(延遲載入)
public class singleton2
private static singleton2 single=null;
//雙重檢查,可以避免整個方法被鎖,只對需要鎖的**部分加鎖,可以提高執行效率。
public static singleton2 getinstance()
}return single;
}}
Java設計模式 單例模式
單例模式 singleton 顧名思義,就是乙個類只有乙個例項。作為物件的建立模式,單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。顯然單例模式的要點有三個 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。從具體...
java設計模式 單例模式
這個模式是很有意思,而且比較簡單,但是我還是要說因為它使用的是如此的廣泛,如此的有人緣,單例就是單 一 獨苗的意思,那什麼是獨乙份呢?你的思維是獨乙份,除此之外還有什麼不能山寨的呢?我們舉個比較難複製的物件 皇帝中國的歷史上很少出現兩個皇帝並存的時期,是有,但不多,那我們就認為皇帝是個單例模式,在這...
java設計模式 單例模式
單例模式介紹 單例模式分 懶漢式單例 餓漢式單例。單例模式有一下特點 1 單例類只能有乙個例項。2 單例類必須自己自己建立自己的唯一例項。3 單例類必須給所有其他物件提供這一例項。單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。單例有併發問題,只有乙個例項,多個執行緒就可能同...