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種寫法
在介紹單例模式的寫法之前,我們有必要了解一下什麼是單例模式。單例模式是一種常用的軟體設計模式,在他的核心結構中只包含乙個被稱為 單例的特殊類。通過單例模式可以保證系統只有乙個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統資源。如果希望在系統中某個類的物件只能存在乙個,單例模式是最好的...
單例模式的八種寫法
單例模式是最常用到的設計模式之一,熟悉設計模式的朋友對單例模式都不會陌生。一般介紹單例模式的書籍都會提到餓漢式和懶漢式這兩種實現方式。但是除了這兩種方式,本文還會介紹其他幾種實現單例的方式,讓我們來一起看看吧。單例模式是一種常用的軟體設計模式,其定義是單例物件的類只能允許乙個例項存在。許多時候整個系...