單例模式的7種寫法

2021-08-28 14:27:48 字數 2878 閱讀 2899

/**

* @program: singleton

* @description: 懶漢模式,單例例項在第一次使用時進行建立,非執行緒安全* @author: mr.superbeyone

* @create: 2018-09-30 09:15

**/public

class

singletondemo1

//單例物件

private

static singletondemo1 instance = null;

//靜態工廠方法

public

static singletondemo1 getinstance()

return instance;

}}

/**

* @program: singleton

* @description: 餓漢模式,單例例項在類裝載時進行建立,執行緒安全* @author: mr.superbeyone

* @create: 2018-09-30 09:21

**/public

class

singletondemo2

//單例物件

private

static singletondemo2 instance =

newsingletondemo2()

;//靜態的工廠方法

public

static singletondemo2 getinstance()

}

/**

* @program: singleton

* @description: 懶漢模式,單例例項在第一次使用時進行建立,執行緒安全,不推薦使用* @author: mr.superbeyone

* @create: 2018-09-30 09:29

**/public

class

singletondemo3

//單例物件

private

static singletondemo3 instance = null;

//靜態工廠方法

public

static

synchronized singletondemo3 getinstance()

return instance;

}}

/**

* @program: singleton

* @description: 懶漢模式,雙重同步鎖單例模式,單例例項在第一次使用時建立,非執行緒安全* @author: mr.superbeyone

* @create: 2018-09-30 09:38

**/public

class

singletondemo4

//單例物件

private

static singletondemo4 instance = null;

//靜態工廠方法

public

static singletondemo4 getinstance()

}}return instance;

}}

/**

* @program: singleton

* @description: 懶漢模式,雙重同步鎖單例模式,單例例項在第一次使用時建立,執行緒安全* @author: mr.superbeyone

* @create: 2018-09-30 09:45

**/public

class

singletondemo5

//單例物件 volatile + 雙重檢測機制 -> 禁止指令重排

private

volatile

static singletondemo5 instance = null;

//靜態工廠方法

public

static singletondemo5 getinstance()

}}return instance;

}}

/**

* @program: my-blog

* @description: 餓漢模式,單例例項在類裝載時進行建立,執行緒安全* @author: mr.superbeyone

* @create: 2018-09-30 09:56

**/public

class

singletondemo6

//單例物件

private

static singletondemo6 instance = null;

static

//靜態工廠方法

public

static singletondemo6 getinstance()

}

/**

* @program: singleton

* @description: 列舉模式,執行緒安全,推薦使用* @author: mr.superbeyone

* @create: 2018-09-30 09:59

**/public

class

singletondemo7

public

static singletondemo7 getinstance()

private

enum singleton

private singletondemo7 getinstance()

}}

單例模式的7種寫法

在介紹單例模式的寫法之前,我們有必要了解一下什麼是單例模式。單例模式是一種常用的軟體設計模式,在他的核心結構中只包含乙個被稱為 單例的特殊類。通過單例模式可以保證系統只有乙個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統資源。如果希望在系統中某個類的物件只能存在乙個,單例模式是最好的...

單例模式的7種寫法

設計模式 design pattern 一共有23種,而單例模式 singleton pattern 是 其中最簡單的設計模式之一,這種模式涉及到乙個單一的類,該類負責建立自己的物件,同時確保只有單個物件被建立。單例模式有很多種寫法,下面我們介紹一下常見的7種寫法。單例模式有幾個注意點 常見的單例模...

java單例模式的7種寫法

很不錯。懶漢 2種,執行緒安全和執行緒不安全 餓漢 classloader,和static塊變種 雙重校驗鎖,列舉和靜態內部類。幾種之間的區別就是為了避免不同環境下的缺陷。下面就列舉型別的單例模式說明 package com.zoer.src public enum singletonexample...