單例模式八種常用實現(附原始碼)

2021-10-22 14:45:36 字數 1203 閱讀 8669

單例模式:採用一定的方法保證在整個軟體系統中只會生成乙個例項。

1. 餓漢式-靜態常量

public class singletontest01 

public static singletontest01 getinstance()

}

2. 餓漢式-靜態**塊

public class singletontest02 

static

public static singletontest02 getinstance()

}

3. 懶漢式(執行緒不安全)

public class singletontest03 

public static singletontest03 getinstance()

return test03;

}}

4. 懶漢式(執行緒安全)

public class singletontest04 

public synchronized static singletontest04 getinstance()

return test04;

}}

5. 懶漢式(執行緒安全,同步**塊)

public class singletontest05 

public static singletontest05 getinstance()

}return test05;

}}

6. 雙重加鎖

public class singletontest06 

public static singletontest06 getinstance()

}return test06;

}}

7. 靜態內部類

public class singletontest07 

static class singlentoninstance

public static singletontest07 getinstance()

}

8. 列舉

enum singleton

}

單例模式(八種實現方式)

餓漢單例 優點 簡單 執行緒安全 缺點 浪費記憶體 我們的單例物件數量不可控的時候,可能會造成記憶體浪費 public class hungraysingleton 提供全域性訪問點 public final static hungraysingleton getinstance 餓漢靜態 塊 pu...

八種單例模式總結

先吐槽一下,這是誰起的名字,別說,還挺難聽。餓漢式1 2 靜態常量和靜態 塊 優點 這種寫法比較簡單,就是在類裝載的時候就完成例項化,避免了執行緒同步問題。缺點 在類裝載的時候就完成例項化,如果未使用過這個例項,會造成記憶體的浪費。public class singleton public stat...

八種單例設計模式

1.靜態常量 2.靜態 塊 1.執行緒安全 2.執行緒不安全 同步方法 3.執行緒不安全 同步 塊 單例設計模式就是在整個系統中或者程式中只有乙個該物件的應用例項。例如 public class single public static single getinstance 2 靜態 塊 步驟 1....