java設計模式 單例模式(Singleton)

2021-09-12 08:44:28 字數 1517 閱讀 8872

設計模式(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 單例類必須給所有其他物件提供這一例項。單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。單例有併發問題,只有乙個例項,多個執行緒就可能同...