設計模式之單例模式 Singleton

2021-10-08 21:44:47 字數 1045 閱讀 5420

單例模式的定義:保證乙個類只有乙個例項,並且提供乙個全域性訪問點

使用場景:重量級物件,不需要多個例項,如執行緒池,資料庫連線池

類圖:乙個私有的變數singleton,乙個私有的構造方法,乙個公共的全域性訪問點

一、懶漢模式:延遲載入,只在真正實用的時候才開始例項化

public

class

lazysingleton

//公有的全域性訪問點

public

static lazysingleton getinstance()

}}return sinstance;

}}

二、餓漢模式:類初始化時就進行載入

注:由於sinstance是靜態的,因此在類載入時就會進行初始化,因此這裡只有有乙個例項。所以餓漢模式實際上是由jvm類載入機制來保證例項的唯一性

類載入過程:

載入二進位制資料到記憶體中,生成對應的class資料結構

連線:a.驗證 b.準備(給類的靜態成員變數賦預設值) c.解析

初始化:給類的靜態變數賦初值

public

class

hungrysingleton

public

static hungrysingleton getinstance()

}

三、 靜態內部類方式:其實也是個懶載入模式,只有在呼叫getinstance的時候才會進行類初始化。也是利用jvm的類載入機制來保證例項唯一性的
public

class

innerclasssingleton

private

innerclasssingleton()

public

static innerclasssingleton getinstance()

}

Java設計模式 單例模式(single)

目錄目的 應用例項 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。菜鳥教程 乙個國家有乙個首都 windows 是多程序多執行緒的,在操作乙個檔案的時候,就不可避免地出現多個程序或執行緒同時操作乙個檔案的現象,所以所有檔案的處理必須通過唯一的例項來進行。第一種 package com.ga...

設計模式之單例模式

前一段時間買了一本秦小波寫的 設計模式之禪 網上對這書的評價很高。現在還沒有看很多,但是有些地方頗有感觸,也並不是所有的地方都能看懂,但是會慢慢研究的。自己對於設計模式的感覺就是乙個字 牛!感覺會23種設計模式並且會熟練運用的人,真的就是大師級的牛人了,設計模式是乙個專案主管或者架構師一定要會的東西...

設計模式之單例模式

package com.xie.singleton public class singleton 提供乙個共有的靜態的入口方法 public static singleton getinstance 懶漢式 延遲載入 提供乙個私有的靜態的成員變數,但不做初始化 private static sing...