單例模式是一種物件建立模式,確保系統中乙個類只有乙個例項。
單例模式如下特點:
1、單例類只能有乙個例項。
2、單例類必須自己自己建立自己的唯一例項。
3、單例類必須給所有其他物件提供這一例項。
採用這種設計模式有兩大好處:
1.對於頻繁使用的物件,可以省略建立物件所花費的時間;
2.由於new操作的次數減少,對於系統記憶體的使用頻率降低,這樣減少gc的壓力,縮短gc停頓的時間。
懶漢模式
優點是可以延遲載入, 缺點是多執行緒不安全
public
class
singleton
public
static singleton getinstance()
return instance;
}}
餓漢模式
優點是多執行緒安全,缺點載入類時就初始化完成,無法延時載入
public
class
singleton
public
static singleton getinstance()
}
雙重檢查
優點是多執行緒安全可以延遲載入,缺點是同步耗時
public
class
singleton
public
static singleton getinstance()}}
return instance;
}}
靜態內部類
優點多執行緒安全延遲載入耗時短(與雙重檢查相比)
public
class singleton
public
static singleton getinstance()
private
static
class singletonholder
}
列舉模式
確定記憶體占用大
public
enum singleton
}
Java設計模式 單例模式
單例模式 singleton 顧名思義,就是乙個類只有乙個例項。作為物件的建立模式,單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。顯然單例模式的要點有三個 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。從具體...
java設計模式 單例模式
這個模式是很有意思,而且比較簡單,但是我還是要說因為它使用的是如此的廣泛,如此的有人緣,單例就是單 一 獨苗的意思,那什麼是獨乙份呢?你的思維是獨乙份,除此之外還有什麼不能山寨的呢?我們舉個比較難複製的物件 皇帝中國的歷史上很少出現兩個皇帝並存的時期,是有,但不多,那我們就認為皇帝是個單例模式,在這...
java設計模式 單例模式
單例模式介紹 單例模式分 懶漢式單例 餓漢式單例。單例模式有一下特點 1 單例類只能有乙個例項。2 單例類必須自己自己建立自己的唯一例項。3 單例類必須給所有其他物件提供這一例項。單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。單例有併發問題,只有乙個例項,多個執行緒就可能同...