單例模式 的5種實現

2021-10-10 12:29:33 字數 872 閱讀 2127

一、餓漢式

//類裝載的時候完成初始化,避免了多執行緒問題,

//缺點: 在裝載的時候完成初始化,記憶體可能浪費

class singleton 

private final static singleton instance = new singleton();

public static singleton getinstance(

)}

二、靜態**塊

.靜態**塊執行時,建立單例物件, 類裝載的時候,建立物件

class singlton 

static

private static final singlton instance;

public static singlton getinstance(

)}

三、雙重檢查方式實現

class sington

private static sington instance;

public static sington getinstance()}

}return instance;

}}

四、靜態內部類

1.類載入時,靜態內部類會被 載入 ,內部類變數要 用 private ,static final 修飾

2.返回內部類的成員變數

class  singleton

private static class inner

public singleton getinstance(

)}

五、列舉

enum singleton

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

1.餓漢式 不支援併發 此模式只能執行在單執行緒下,且類在載入時就已經建立好了例項,不管需不需要用。package com.lys 餓漢式 public class singleton1 private static singleton1 instance new singleton1 public...

5種方式實現單例模式

破壞單例模式的方法及應對 使用場景 單例模式的核心是乙個類只允許有乙個例項化物件。spring物件池預設就是單例模式。如果生產環境下某類只需要也只允許有乙個例項化物件就可以考慮使用單例模式。實現單例模式的策略是 構造方法私有化,也就是外部不允許通過new的方式獲取物件,而是提供乙個公開的靜態方法供外...

單例模式 5種實現方式

單例模式能夠保證乙個類僅有唯一的例項,並提供乙個全域性訪問點。1 餓漢式 執行緒安全,呼叫效率高,但是不能延時載入 public class singleton public static singleton getinstance 2.懶漢式 執行緒安全,呼叫效率不高,但是能延時載入 public...