設計模式之單例模式

2021-10-07 02:57:02 字數 1404 閱讀 9925

確保任何情況下都絕對只有乙個補全。像這樣的被稱為單例模式。

public

class

hungry

public

static instance getinstance()

}

public

class

lazy

public

static instance getinstance()

return instance;

}}

public

class

dclpublic

static instance getinstance()

}}return instance;

}}

time

thread a

thread b

t1檢查到instance為空

t2獲取鎖

t3再次檢查到instance為空

t4為instance分配記憶體空間

t5將instance指向記憶體空間

t6檢查到instance不為空

t7訪問instance(此時物件還未完成初始化)

t8初始化instance

public

class

dclplus

public

static instance getinstance()

}}return instance;

}}

public

enum enumsingleton

}

public

class

staticinner

private

static

class

singleonholder

public

static instance getinstance()

}

singleonholder是乙個靜態內部類,當外部類staticinner被載入的時候,並不會建立該例項物件。只有當呼叫getinstance()方法時,singleonholder才會載入,這個時候才會建立instance。insance 的唯一性、建立過程的執行緒安全性,都由jvm 來保證。所以,這種實現方法既保證了執行緒安全,又能做到延遲載入。

設計模式之單例模式

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

設計模式之單例模式

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

設計模式之 單例模式

單例模式 singleton 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。單例模式 單件模式 使用方法返回唯一的例項 public class singleton private static singleton instance public static singleton geti...