設計模式(design pattern):
是一套被反覆使用、經過分類編目、**設計經驗的總結。
目的:為了可重用**、讓**更容易被他人理解、保證**的可靠性。
適用場景:
有些物件我們只需要乙個,比如,配置檔案、工具類、執行緒池、快取、日誌物件等。
作用:保證整個應用程式中某個例項有且只有乙個。
餓漢式:
public
class
singleton
//構造方法私有化之後外部無法建立物件 但是又至少得有乙個 因此類部自己建立唯一乙個例項
//靜態修飾變為類的成員並且私有化(private static為了安全 不允許外部訪問成員)
private
static singleton instance =
newsingleton()
;//提供乙個外部用於獲取例項的public static類方法
public
static singleton getinstance()
}public
static
void
main
(string[
] args)
else
//輸出是同乙個例項
}
靜態成員屬於類所有,在類載入的時候會去初始化,當類載入的時候會去建立例項(private static singleton instance = new singleton(),不管有沒有呼叫,不管需要不需要,都會去建立,類載入了,唯一例項就被建立了,因此稱為餓漢式。
懶漢式:
public
class
singleton
//構造方法私有化之後外部無法建立物件 但是又至少得有乙個 因此類部自己建立唯一乙個例項
//宣告靜態修飾變為類的成員並且私有化(private static為了安全 不允許外部訪問成員),只是宣告,並沒有例項化
private
static singleton instance;
//提供乙個用於獲取例項的private static類方法
public
static singleton getinstance()
return instance;}}
public
static
void
main
(string[
] args)
else
//輸出是同乙個例項
}
在類載入的時候並沒有初始化成員變數,當後續呼叫使用的時候呼叫getinstance()方法的時候才會去初始化成員變數建立唯一例項。
餓漢式和懶漢式的區別:
餓漢式的特點是:載入類的時候比較慢,但執行時獲取物件的速度比較快,執行緒安全的。
懶漢式的特點是:載入類的時候比較快,執行時獲取物件的速度比較慢,執行緒不安全的。
Java設計模式 單例模式
單例模式 singleton 顧名思義,就是乙個類只有乙個例項。作為物件的建立模式,單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。顯然單例模式的要點有三個 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。從具體...
java設計模式 單例模式
這個模式是很有意思,而且比較簡單,但是我還是要說因為它使用的是如此的廣泛,如此的有人緣,單例就是單 一 獨苗的意思,那什麼是獨乙份呢?你的思維是獨乙份,除此之外還有什麼不能山寨的呢?我們舉個比較難複製的物件 皇帝中國的歷史上很少出現兩個皇帝並存的時期,是有,但不多,那我們就認為皇帝是個單例模式,在這...
java設計模式 單例模式
單例模式介紹 單例模式分 懶漢式單例 餓漢式單例。單例模式有一下特點 1 單例類只能有乙個例項。2 單例類必須自己自己建立自己的唯一例項。3 單例類必須給所有其他物件提供這一例項。單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。單例有併發問題,只有乙個例項,多個執行緒就可能同...