單例模式實現

2021-10-02 17:43:11 字數 1464 閱讀 3471

單例模式分為餓漢式和懶漢式

**實現:

餓漢式:所謂餓漢式,也就是不管能不能用的上,都會載入,像乙個惡漢,如果在構造方法裡寫了效能消耗較大,佔時較久的**,比如建立與資料庫的連線,那麼就會在啟動的時候感覺稍微有些卡頓。

private singleton1

private

static singleton1 instance=

newsingleton1()

;public

static singleton1 getinstance()

懶漢式:用到的時候再載入,有了synchronized的存在,所以效率比較低

public singleton2

private

static

synchronized singleton2 instance;

public

static singleton2 getinstance()

return instance;

}

private singleton3

private

volatile

static singleton3 instance;

public

static singleton3 getinstance()

}}return instance;

}

靜態內部類實現

private

singleton4()

private

static

class

innerclass

public

static singleton04 getinstance()

這種做法仍然會被反射破壞單例(上述的方法都會)

反射是可以破壞單例的(但是可以避免)

這時就引入了列舉

進入newinstance原始碼可以看到這一行

}再普及下lazy loading(懶載入)

簡而言之,按需載入,別的延遲,這樣一來效率會更高,不會載入多於暫時不需要的部分。所以說有利有弊

單例模式實現

單例模式 singleton 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。1 適用於單執行緒 class singleton public static singleton getinstance return instance 註解 singleton的靜態屬性instance中,只有...

單例模式實現

推薦的單例實現方法 餓漢模式 1種 public class singleton public static singleton getinstance 雙重檢查 volatile關鍵字必須加 public class singleton public static singleton getins...

單例模式實現

什麼是設計模式 設計模式 design pattern 是一套被反覆使用 多數人知曉的 經過分類的 設計經驗的總結 使用設計模式的目的 為了 可重用性 讓 更容易被他人理解 保證 可靠性 什麼是單例模式 單例模式是設計模式的一種,也是最簡單的一種,在單例模式中乙個類只能建立乙個例項,這種設計模式可以...