模式設計的秘密之單例模式。

2021-07-04 23:12:23 字數 1240 閱讀 2459

前言:在我們的實際應用中,經常會出現整個應用中有且只有乙個,比如工具類。連線池,日誌,快取等等。這個時候經常就會考慮用單例設計模式來解決問題。

一.餓漢式單例模式

public class singleton

//自己建立乙個物件,供外界呼叫

private static singleton instance=new singleton();

//給外界提供乙個獲取物件的介面

public static singleton getinstance()

}

二.懶漢式單例模式

public class singleton
//自己建立乙個物件,共外界呼叫

private static singleton instance;

//給外界提供乙個獲取物件的介面

public static singleton getinstance()

return instance;

}}

區別:餓漢式單例模式在類載入的時候速度比較慢,執行的時候速度較快,而且是執行緒安全的。

懶漢式單例模式在類載入的速度比較快,執行的時候速度較慢,但是執行緒是不安全的。

三.執行緒安全的,效能低一點的懶漢式單例模式

public class singleton

//自己建立乙個物件,共外界呼叫

private static singleton instance;

//給外界提供乙個獲取物件的介面,但是是執行緒安全的,一次只有乙個執行緒走進去

public static synchronized singleton getinstance()

return instance;

}}

四.執行緒安全帶的,效能較高的懶漢式單例模式

public class singleton

//自己建立乙個物件,共外界呼叫

private static singleton instance;

//給外界提供乙個獲取物件的介面

public static singleton getinstance()

}

}
return instance;
}

模式的秘密 單例模式

1,單例模式分 餓漢模式和懶漢模式。餓漢模式 在載入類的時候就自動建立 懶漢模式 在載入類的時候只宣告,只有在呼叫的時候才建立。單例模式 最重要的是通過構造方法私有化,限制外部初始化例項,在內部建立,通過static關鍵字,使得外部可以通過類名呼叫方法,獲取類唯一例項。餓漢模式例項 package ...

模式的秘密 單例模式

應用場景 讀取配置檔案的類 配置檔案一般不變,只要有乙個類就夠了 計數器 資料庫連線池 經常去new的話很耗資源 severlet 1,單例模式分 餓漢模式和懶漢模式,雙重檢測鎖式,靜態內部類 存在反射漏洞 列舉單例 缺點 無法實現懶載入 餓漢模式 在載入類的時候就自動建立 懶漢模式 在載入類的時候...

模式的秘密 單例模式

1,單例模式分 餓漢模式和懶漢模式。餓漢模式 在載入類的時候就自動建立 懶漢模式 在載入類的時候只宣告,只有在呼叫的時候才建立。單例模式 最重要的是通過構造方法私有化,限制外部初始化例項,在內部建立,通過static關鍵字,使得外部可以通過類名呼叫方法,獲取類唯一例項。餓漢模式例項 package ...