單例模式的兩種方式

2021-08-27 14:35:36 字數 796 閱讀 9255

首先,單例模式是指在程式執行的過程中,保證該類的例項只有乙個可以被外界訪問(可用於讀取配置檔案,以保證沒有對外部資源的併發操作)。

單例模式分為飽漢模式和飢漢模式。飽漢模式,也是我們說熟知的單例模式,為類在初始化的時候就進行了類的例項化,getinstance方法只需要自動獲取就可以了;飢漢模式為類在初始化時並為進行類的例項化,而是在getinstance方法中,先對物件進行判斷,如果為null,就進行例項化,再返回,如果不為空,則直接返回該例項物件。

**模擬:

1.飽漢模式:

public class singleton

// 2.靜態例項

private staitc singleton instance = new singleton();

// 3.外界訪問的方法

public staitc singleton getinstance()

private static singleton instance = null;

public static synchronized singleton getinstance(){ //這裡必須要加上synchronized關鍵字以解決併發問題

if(instance == null){

instance = new singleton();

return instance;

至於兩種模式的區別,第一種不需要考慮多執行緒併發訪問問題,第二種需要考慮。但是如果是工廠模式,該工廠中快取了很多例項,這個類載入的時候不會去驗證是否使用,此時會影響效率,此時可以考慮使用飢漢模式的單例。)

兩種單例模式

一。單例模式 有以下的特點 eg。每台計算機可以有若干通訊埠,系統應當集中管理這些通訊埠,以避免乙個通訊埠同時被兩個請求同時呼叫。為了避免不一致狀態 1 單例類只能有乙個例項。2 單例類必須自己建立自己的唯一例項。3 單例類必須給所有其他物件提供這一例項。1 懶漢式單例 singleton通過將構造...

單例模式(java兩種方式實現)

測試類 public class singletontest1 單例類 class singleton 構造方法私有帶來乙個問題,就是不能產生例項了,所以通過寫乙個方法返回乙個例項 第二步 public static singleton getinstance 必須為static 這樣在main中才...

單例模式 Singleton 的兩種實現方式

第一種方式 package com.test.util public class singletontest class singleton public static singleton getinstance 第二種實現方式 package com.spring public class sin...