五種單例模式實現

2021-10-11 17:52:56 字數 833 閱讀 2638

public

class

hunger

private

final

static hunger hunger =

newhunger()

;public

static hunger getinstance()

}

多個執行緒安全,但無法進行懶載入,如果類成員很多,則占用的資源比較多

public

class

lazy

public

static lazy getinstance()

return lazy;

}}

多執行緒下不安全,不能保證單例唯一

public

class

doublecheck

public

static doublecheck getinstance()

}}return doublecheck;

}}

public

class

staticinnerclass

private

static

class

innerclass

public

static staticinnerclass getstaticinnerclass()

}

public

enum enum

}

靜態內部類和列舉是目前適用較廣的單例設計

單例模式的五種實現

1.1懶漢式,執行緒不安全 單例模式在多執行緒的 應用場合下必須小心使用。如果當唯一例項尚未建立時,有兩個執行緒同時呼叫建立方法,那麼它們同時沒有檢測到唯一例項的存在,從 而同時各自建立了乙個例項,這樣就有兩個例項被構造出來,從而違反了單例模式中例項唯一的原則。解決這個問題的辦法是為指示類是否已經例...

五種單例模式

import settings class mysql instance none 原始狀態設為none def init self,ip,port self.ip ip self.port port classmethod deffrom conf cls if cls.instance is n...

五種單例模式

1 餓漢模式 public class ehansingleton 提供獲取單例物件的方法 public static ehansingleton getinstance 2 懶漢式 懶漢式 public class lanhansingleton 提供獲取單例物件的方法 增加 synchroniz...