8種單例設計模式

2021-10-03 21:02:21 字數 1712 閱讀 7585

單例模式有八種方式:

餓漢式(靜態常量)

餓漢式(靜態**塊)

懶漢式(執行緒不安全)

懶漢式(執行緒安全,同步方法)

懶漢式(執行緒安全,同步**塊)

雙重檢查

靜態內部類

列舉

//餓漢式(靜態變數)

class

singleton

//2.本類內部建立物件例項

private

final

static singleton instance =

newsingleton()

;//3. 提供乙個公有的靜態方法,返回例項物件

public

static singleton getinstance()

}

//餓漢式(靜態變數)

class

singleton

//2.本類內部建立物件例項

private

static singleton instance;

static

//3. 提供乙個公有的靜態方法,返回例項物件

public

static singleton getinstance()

}

class

singleton

//提供乙個靜態的公有方法,當使用到該方法時,才去建立 instance

//即懶漢式

public

static singleton getinstance()

return instance;

}}

// 懶漢式(執行緒安全,同步方法)

class

singleton

//提供乙個靜態的公有方法,加入同步處理的**,解決執行緒安全問題

//即懶漢式

public

static

synchronized singleton getinstance()

return instance;

}}

// 懶漢式(執行緒安全,同步方法)

class

singleton

//提供乙個靜態的公有方法,加入雙重檢查**,解決執行緒安全問題, 同時解決懶載入問題

//同時保證了效率, 推薦使用

public

static

synchronized singleton getinstance()

}}return instance;

}}

// 靜態內部類完成, 推薦使用

class

singleton

//寫乙個靜態內部類,該類中有乙個靜態屬性 singleton

private

static

class

singletoninstance

//提供乙個靜態的公有方法,直接返回singletoninstance.instance

public

static

synchronized singleton getinstance()

}

//使用列舉,可以實現單例, 推薦

enum singleton

}

設計模式 8種方式實現單例模式

1 餓漢式的兩種寫法 餓漢式的特點 在獲取單例物件之前物件就已經建立完成了。package com.juc程式設計.volatile0 public class singleeh public static singleeh getsingleeh 2.靜態 塊 private static fin...

23種設計模式之單例模式(8種寫法)

23種設計模式之單例模式 8種寫法 餓漢式 高效 沒有執行緒安全問題 簡單 jvm保證執行緒安全問題 public class merge01 public static merge01 getinstance public static void main string args 用靜態塊初始化 ...

模式 單例模式8種寫法

單例模式是最常用到的設計模式之一,熟悉設計模式的朋友對單例模式都不會陌生。一般介紹單例模式的書籍都會提到餓漢式和懶漢式這兩種實現方式。但是除了這兩種方式,本文還會介紹其他幾種實現單例的方式,讓我們來一起看看吧。單例模式是一種常用的軟體設計模式,其定義是單例物件的類只能允許乙個例項存在。許多時候整個系...