單例模式屬於建立型模式,它提供了一種建立物件的最佳方式。這種模式涉及到乙個單一的類,該類負責建立自己的物件,同時確保只有單個物件被建立。這個類提供了一種訪問其唯一的物件的方式,可以直接訪問,不需要例項化該類的物件。
意圖:單例類必須自己建立自己的唯一例項,並必須提供乙個訪問它的全域性訪問點。
主要解決:乙個全域性使用的類頻繁地建立與銷毀。
何時使用:當您想控制例項數目,節省系統資源的時候。
如何解決:判斷系統是否已經有這個單例,如果有則返回,如果沒有則建立。
關鍵**:建構函式是私有的!!!
1、經典的手撕單例——懶漢式(呼叫時初始化物件)
public class singleton2、餓漢式 (類載入時就初始化物件)//既然無法在外部被例項化,那麼我們就必須在內部例項化,然後提供乙個公有的方法將該例項返回
public static singleton getinstance()
return instance;}}
private static singleton instance=new sington();
3、執行緒安全的懶漢式(在getinstance方法上加同步鎖)
public static synchronized singleton getinstance()
4、執行緒安全的雙重校驗鎖(在getinstance方法內巢狀判斷是否例項化)
雙重校驗鎖先判斷 instance 是否已經被例項化,如果沒有被例項化,那麼才對例項化語句進行加鎖。
public static synchronized singleton getinstance()}}
return uniqueinstance;
}
Java設計模式 單例模式
單例模式 singleton 顧名思義,就是乙個類只有乙個例項。作為物件的建立模式,單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。顯然單例模式的要點有三個 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。從具體...
java設計模式 單例模式
這個模式是很有意思,而且比較簡單,但是我還是要說因為它使用的是如此的廣泛,如此的有人緣,單例就是單 一 獨苗的意思,那什麼是獨乙份呢?你的思維是獨乙份,除此之外還有什麼不能山寨的呢?我們舉個比較難複製的物件 皇帝中國的歷史上很少出現兩個皇帝並存的時期,是有,但不多,那我們就認為皇帝是個單例模式,在這...
java設計模式 單例模式
單例模式介紹 單例模式分 懶漢式單例 餓漢式單例。單例模式有一下特點 1 單例類只能有乙個例項。2 單例類必須自己自己建立自己的唯一例項。3 單例類必須給所有其他物件提供這一例項。單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。單例有併發問題,只有乙個例項,多個執行緒就可能同...