單例模式各種實現詳解

2021-10-04 19:05:35 字數 1054 閱讀 7251

/**

* 餓漢模式 安全,但是無法實現懶載入

*/public class hungersingleton

}

/**

* 懶漢單例 ,多執行緒會出現多個例項,需要優化

* 能夠實現懶載入

*/public class lazymansingleton

public static lazymansingleton getinstance()

return lazymansingleton;

}}

/**

* double-check-locking 雙重檢查鎖單例

* 這個寫法貌似很完美,但是如果構造方法中存在指令重排的情況,會出現null指標

* volatile+double-check

* 懶載入,執行緒安全,比較完美的單例模式

*/public class dcl

public static dcl getinstance()}}

return instance;

}

}

/**

* 靜態內部類單例模式(主要利用靜態內部類的懶載入機制)

* 應用比較廣泛 安全 也可以實現懶載入

*/public class holderdemo

private static class holder

}public static holderdemo getinstance()

}

/**

* 改良版,即可實現懶載入和執行緒安全

* 運用較為廣泛

*/public class enumsingletondemo

//延遲載入 (類似靜態內部類)

private enum enumholder

}public static enumsingletondemo getinstance()

}

單例模式詳解

單例模式的意思就是只有乙個例項。單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。1.單例模式的要點 顯然單例模式的要點有三個 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。2.單例模式的優點 1.例項控制 si...

單例模式詳解

單例模式是設計模式中比較常用的,今天我要詳細的了解一下,並且進行一些比較 public class singleton public static singleton getinstance catch interruptedexception e 單例模式的精髓就在這,類的內部可以new inst...

單例模式 詳解

保證乙個類僅有乙個例項,並且提供乙個訪問它的全域性訪問點 在該例項不存在的情況下,可以通過乙個方法建立乙個類來實現建立類的新例項 如果例項已經存在,它會簡單返回該物件的引用 建立型模式 var singleton function return var singlea singleton.getin...