初探設計模式 單例模式

2022-08-30 11:51:09 字數 1482 閱讀 7773

單例模式是我們經常使用的一種設計模式,那麼讓我們自己來設計一種單例模式的話,我們該如何設計呢??

設計的方式有很多種,我們依次來看一下:

首先是第一種:

1

/**2

* 簡單的方式:在併發執行的時候可能存在多個例項3*

4* @author

cuibin

5* @create 2017-08-30 20:386*

*/7public

class

singleton1

1213

public

static

singleton1 getinstance()

17return

instance;18}

19 }

第一種思路是比較簡單的,通過判斷來確定是否建立例項,但是有個致命的問題,在高併發時,當兩個或幾個請求同時到達時,還是會建立多個例項,怎麼解決呢,我們來看第二種:

1 **

2 *公共域方式 簡單

3 *@author cuibin

4 * @create 2017-08-30 20:47

5 **/

6public

class

singleton2 ;

1112 }

第二種採用公共域的方式,有效的解決了併發狀態下多個例項的問題,但是,問題又出現了,我們不能夠在例項中新增邏輯,gg了,我們來看第三種:

1

/**2

* 工廠化方式,可以在例項過程中新增邏輯3*

4* @author

cuibin

5* @create 2017-08-30 20:496*

*/7public

class

singleton3

1314

public

static

singleton3 getinstance()

17 }

第三種看起來非常完美了,但它還不是最好的,我們來看最好的寫法:

1

/**2

* 列舉類方式 最佳實踐3*/

4public

enum

singleton4

11 }

通過列舉類的方式,最佳實踐。接下來我們來測試一下,看是否能真正實現單例:

1

/**2

* @author

cuibin

3* @create 2017-08-30 20:544*

*/5public

class

testsingleton

22 }

我們來看控制台輸出:

以上就是設計單例的四種方式。

設計模式初探 單例模式

所謂的單例模式就是指的乙個類只提供乙個物件例項,而且所提供的例項只有乙個訪問的入口 方法 常見的應用場景 常見的有五種實現方式 所謂的餓漢式就是,讓單例物件在類建立時就被載入,像乙個餓漢。package cn.liu.single 餓漢式單例模式 author administrator publi...

初探Java設計模式 單例模式

單例模式在需要只有乙個例項的場合中使用,比如配置檔案。單例模式分為 餓漢模式 和 懶漢模式。下面是餓漢模式 package com.example.singletone public class singleton 2.建立private static 物件例項 private static sin...

PHP設計模式初探 詳解單例模式

2019獨角獸企業重金招聘python工程師標準 常見的設計模式有 24 種,其實就常規開發來說,了解其中的七八種就足夠了。工廠模式是最常見的,一般初學物件導向首先接觸的就是工廠模式,不多廢話。單例模式 wikipedia 是指類只維持乙個例項化後的物件,特別適合於建立資料庫鏈結。使用單例模式維護資...