單例模式之列舉單例

2021-10-23 13:43:46 字數 504 閱讀 5767

列舉也是餓漢式。

/**

* 列舉單例

*/// 問題1:列舉單例是如何限制例項個數的 =>反編譯後可以看到 就是我們列舉類的乙個靜態成員變數而已,單例項的

// 問題2:列舉單例在建立時是否有併發問題

// =>沒有,因為它也是靜態成員變數,它的執行緒安全性也是在類載入階段完成的。那個時候不會有執行緒併發問題

// 問題3:列舉單例能否被反射破壞單例 =>不能!所以這是列舉的一大優勢

// 問題4:列舉單例能否被反序列化破壞單例

// =>enum底層實現了序列化介面,所以就預設可以序列化以及反序列化,考慮到了被破壞的問題,所以無需你多慮做額外的操作。

// 問題5:列舉單例屬於懶漢式還是餓漢式 => 餓漢式,一載入就被建立

// 問題6:列舉單例如果希望加入一些單例建立時的初始化邏輯該如何做 =>在內部加構造方法

public

enum singleton3

單例模式 之 單例模式 Holder

之前我寫過 單例模式中的餓漢模式和懶漢模式 他們雖然都能實現單例模式 但是優缺點很明顯 餓漢模式 不能懶載入 類載入就會被例項化 消耗很大,在併發情況下安全性很高。懶漢模式 能實現懶載入,但是在併發情況下安全性不是很高。雖然一步一步的優化,安全性得到了保證,但是卻使用了synchronized 對效...

單例 單例模式

簡單的實現乙個單例 instancetype sharedinstance return instance 真正的單例模式 myclass sharedinstance return instance id allocwithzone nszone zone return nil id copywi...

單例模式 單例模式

餓漢式 急切例項化 public class eagersingleton 2.宣告靜態成員變數並賦初始值 類初始化的時候靜態變數就被載入,因此叫做餓漢式 public static eagersingleton eagersingleton new eagersingleton 3.對外暴露公共的...