七種單例模式的寫法

2021-10-03 19:14:22 字數 1486 閱讀 6034

餓漢式

特點:在類載入時例項化,執行緒安全,如果沒有使用instance的話比較耗費資源

class

singletondemo

public

static singletondemo getinstance()

}

懶漢式(非執行緒安全)

特點: 使用時再例項化

class

singletondemo

public

static singletondemo getinstance()

return instance;

}}

懶漢式(執行緒安全)

特點:執行緒安全,使用synchronized關鍵字鎖方法,多執行緒的情況下方法使用次數很多的話會嚴重影響效率

class

singletondemo

public

static

synchronized singletondemo getinstance()

return instance;

}}

餓漢(變種)

跟上面的餓漢的區別僅是寫法 初始化**寫在了靜態**塊

class

singletondemo

private

singletondemo()

public

static singletondemo getinstance()

}

懶漢(靜態內部類)

特點:執行緒安全, 用時載入,使用靜態內部類

class

singletondemo

private

singletondemo()

public singletondemo getinstance()

}

餓漢(列舉)

利用列舉

enum singletondemo 

}

懶漢(dcl)

public

class

volatiledemo

, string.

valueof

(i))

.start()

;}}}

class

singletondemo

public

static singletondemo getinstance()

}}return instance;

}}

單例模式的七種寫法

第一種 懶漢,執行緒不安全 public class singleton public static singleton getinstance return instance 第二種 懶漢,執行緒安全 public class singleton public static synchronize...

設計模式之單例模式(及七種寫法)

乙個類有且僅有乙個例項,並且自行例項化向整個系統提供 看看下面七種實現方式 public class singleton public static singleton getinstance public class singleton public static singleton getins...

單例模式實現(七種)

單例模式確保乙個類只有乙個例項,並提供乙個全域性訪問點,實現單例模式的方法是私有化建構函式,通過getinstance 方法例項化物件,並返回這個例項 保證在jvm中只有乙個例項 優點 1 單例類只有乙個例項 2 共享資源,全域性使用 3 節省建立時間,提高效能 public class singl...