java實現單例singleton的幾種模式

2021-07-16 08:34:57 字數 1154 閱讀 8355

1.靜態工廠實現法

靜態工場估計是最常用的單例實現方式,例子如下(詳細見註解)

// 靜態工廠實現法

public

class commonsingleton */

private final static commonsingleton instance = new commonsingleton();

private

commonsingleton(){}

public

static commonsingleton getinstance()

}

2.列舉實現法

列舉是較好的單例實現方式

//預設列舉例項的建立是執行緒安全的(且自動解決了序列化反序列化的問題),

但是在列舉中的其他任何方法由程式設計師自己負責。

public

enum enumsingleton

}/*public static void main(string args) */

3.懶漢式單例(非執行緒安全版)

懶漢式單例的原始版

// 此為懶漢單例(在需要的時候再例項化),此種實現方式是非執行緒安全的,且具有commonsingleton的所有缺點

public

class lazysingleton

public lazysingleton getinstance()

return instance;

}}

4.懶漢式單例(執行緒安全版)

懶漢式單例,double checked locking 實現版

// 懶漢模式單例的執行緒安全版(解決了執行緒安全問題,但序列化反序列化問題仍需自己解決(解決方法同commonsingleton))

// 使用double checked locking 實現法

public

class threadsafelazysingleton

public threadsafelazysingleton getinstance() }}

return instance;

}}

Java設計模式之單例模式(Singleton)

前言 在總結okhttp的時候,為了管理網路請求使用到了單例模式,晚上實在沒啥狀態了,靜下心來學習總結一下使用頻率最高的設計模式單例模式。單例模式 單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。單例特點 單例分類 1 懶漢單例 1 非執行緒安全實現 public class...

java實現單例模式

1.餓漢式 public class singletonclass private singletonclass 這種方式基於 classloder 機制避免了多執行緒的同步問題,不過,instance 在類裝載時就例項化,雖然導致類裝載的原因有很多種,在單例模式中大多數都是呼叫 getinstan...

實現單例模式(Java)

題目 設計乙個類,我們只能生成該類的乙個例項 說明 只能生成乙個例項的類是實現了singleton 單例模式 的型別。由於設計模式在物件導向程式設計中有著舉足輕重的作用,因此很多公司都會考察。在眾多模式中,singleton模式是唯一乙個能夠用十幾行 完整實現的設計模式,因此此題目很常見 餓漢式單例...