主要介紹單例模式的一種寫法 注意事項 測試 作用。

2021-07-03 06:08:29 字數 909 閱讀 7192

public class singleton

public static singleton getinstance()

}} return instance;

}

以上是我見過目前最好的寫法。

一、需要注意以下幾點:

1.私有化建構函式

2.定義靜態的singleton instance物件和getinstance方法

3.getinstance方法中使用同步鎖synchronized(singleton.class)防止多執行緒進入造成instance被多次例項化

可以在synchronized(singleton.class)外層又套乙個if判斷,原因是因為為了在instance被例項化後下次進入不必再執行synchronized獲取物件鎖,從而可以提高效能

二、單例模式的作用

1.可以保持應用在執行過程中始終保持只存在乙個例項

2.對於new效能消耗較大的類,只例項化一次可以提高效能。

三、單例模式的測試

單例模式可以使用多執行緒併發進行測試,**如下:

public static void main(string args)  catch (interruptedexception e) 

system.out.println(singleton.getinstance().hashcode());

}.start();}

latch.countdown();

}

其中countdownlatch latch為閉鎖,所有執行緒中都用latch.await();等待鎖被釋放,待所有執行緒初始化完成使用latch.countdown();釋放鎖,從而達到執行緒併發執行singleton.getinstance()的效果

模式 單例模式8種寫法

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

單例模式的7種寫法

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

單例模式的八種寫法

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