單例模式的實現的幾種方法

2021-09-25 22:52:23 字數 674 閱讀 9335

餓漢式的特點:執行緒安全,呼叫效率高,但是不能延遲載入

實現原始碼:

public class singlecase ;

public static singlecase getdl()懶漢式的特點:執行緒安全,呼叫效率不高,但是能延遲載入

實現原始碼:

public class lazy;

//(加入同步塊,防止併發量高的時候建立多個物件)

public static synchronized lazy gets ()

return s;

}

雙重檢測鎖式的特點:執行緒安全,呼叫效率高,但是能延遲載入

具體實現原理:

把同步塊放到了if下面,只用第一次同步檢測,其餘的就不用了同步了

靜態內部類式的特點:執行緒安全,呼叫效率高。但是,可以延遲載入(最理想的單例模式)

實現原始碼:

public class state

private state()

public static state getjts()

列舉單例: 執行緒安全,呼叫效率高,不能延遲載入

具體:天然的單例模式:優點,簡單實用,缺點:沒得懶載入,即延遲載入

使用方式:直接名字點屬性即可呼叫,並且可以天然的防止反射和反序列化漏洞

實現單例模式的幾種方法

public class singleclass public static singleclass getinstance 2 懶漢式 類在被載入時不會被初始化,當第一次被使用時進行初始化,為保證單例,可以使用sychronized關鍵字確保執行緒安全,但是每次呼叫時都會同步。public cla...

實現單例模式的幾種方法

單例模式 singleton pattern 是一種常用的軟體設計模式,該模式的主要目的是確保某乙個類只有乙個例項存在。當你希望在整個系統中,某個類只能出現乙個例項時,單例物件就能派上用場。在 python 中,我們可以用多種方法來實現單例模式 其實,python 的模組就是天然的單例模式,因為模組...

用python實現單例模式的幾種方法

使用 new 方法,python自省 class singleton object def new cls,args,kwargs 如果沒有隱變數 instance就呼叫 new 乙個,python自省 if not hasattr cls,instance orig super singleton...