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模式是唯一乙個能夠用十幾行 完整實現的設計模式,因此此題目很常見 餓漢式單例...