單例模式的多種方式與選擇

2021-07-11 04:40:01 字數 1206 閱讀 5725

當我們使用單例模式的時候,在實際需求場景中。單例模式可以給我們帶來更好的資源優化。但是同時,他也帶來了執行緒安全問題,下面使用了7中方式的單例模式,在實際場景中,我們往往不會簡簡單單的使用餓漢模式或者懶漢模式。

public

class test

public

static singleton getinstance()}/*

單例模式,餓漢式,執行緒下不安全

*/public

static

class singleton2

public

static singleton2 getinstance()}/*

單例模式,餓漢式,執行緒安全,多執行緒環境下效率不高

*/public

static

class singleton3

private

static synchronized singleton3 getinstance()}/*

單例模式,懶漢式,變種,執行緒安全

*/public

static

class singleton4

private

singleton4()

public

static singleton4 getinstance() }/*

單例模式,使用靜態內部類,執行緒安全【推薦】

*/public

static

class singleton5

private

singleton5()

public

static singleton5 getinstance() }/*

靜態內部類,使用列舉方式,執行緒安全【推薦】

*/public

enum singleton6 }/*

靜態內部類,使用雙重校驗鎖,執行緒安全【推薦】

*/public

static

class singleton7

public

static singleton7 getinstance()

}return instance;}}

/*測試

*/public

static

void

main(string args)

}

單例設計模式多種實現方式

public class singleton 私有化建構函式,防止new物件 public static singleton getinstance public class singleton public static singleton getinstance return intance 這...

單例模式的多種寫法

public class singleton 私有化構造器 private static singleton instance null 類的內部建立物件 public static singleton getinstance return instance 餓漢class singleton2 只...

單例模式多種方法

第一種 懶漢式 在需要例項物件的時候提供 懶漢式,提供乙個getinstance方法,在需要例項時,才呼叫 執行緒不安全,可以在getinstance上加synchronized保證執行緒安全,但是效能不高 author wb public class singleton 私有乙個例項 privat...