一、概述:
單例模式的寫法有好幾種,這裡主要有三種:懶漢式單例、餓漢式單例、登記式單例。
單例模式有以下特點:
1、單例類只能有乙個例項。
2、單例類必須自己建立自己的唯一例項。
3、單例類必須給所有其他物件提供這一例項。
單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。在計算機系統中,執行緒池、快取、日誌物件、對話方塊、印表機、顯示卡的驅動程式物件常被設計成單例。這些應用都或多或少具有資源管理器的功能。每台計算機可以有若干個印表機,但只能有乙個printer spooler,以避免兩個列印作業同時輸出到印表機中。每台計算機可以有若干通訊埠,系統應當集中管理這些通訊埠,以避免乙個通訊埠同時被兩個請求同時呼叫。總之,選擇單例模式就是為了避免不一致狀態,避免政出多頭。
第一種:懶漢式單例
//懶漢是單利模式類
public
class
singleton
// 3.公開的靜態工廠方法,返回該類的唯一例項(當發現沒有例項沒有初始化的時候才初始化)
public
static singleton getinstance()
}
第二種:餓漢式單利
public
class
singleton2
// 2.私有的唯一的靜態例項變數,在類載入的時候就建立好單例物件
private
final
static singleton2 instance = new singleton2();
// 3.公開的靜態工廠返回此類的唯一例項
public
static singleton2 getinstance()
}
java中單例模式
定義 乙個類只允許產生乙個例項化物件。我們先想想類的例項化物件是如何產生的?它是通過類的構造方法產生的。現在只讓乙個類產生乙個例項化物件,我們就要考慮從它的構造方法入手,我們可以把建構函式私有化,這樣它就不能在類的外部被呼叫了。但如果我們還想在類的外部呼叫類內函式,就必須通過類的例項化物件來呼叫,但...
Java中的單例模式
保證只有乙個物件 類載入的時候物件就已經存在,餓漢式是執行緒安全的,在類建立的同時就已經建立好乙個靜態的物件供系統使用,以後不再改變,上述例子就是乙個惡漢式 類載入的時候物件還不存在,就是所謂的延遲載入方式,需要時再進行建立,懶漢式如果在建立例項物件時不加上synchronized則會導致對物件的訪...
java 中的單例模式
單例模式 一 保證乙個類只有乙個例項,並提供乙個訪問它的全域性訪問點。1.構造方法私有化 2.宣告乙個本類的物件 3.給外部提供乙個靜態方法用來讓外部獲取物件例項 二 兩種實現方式 餓漢式 懶漢式餓漢式 private static single01 single new single01 餓漢式 ...