模式的秘密 單例模式

2021-09-10 17:54:44 字數 1473 閱讀 8869

應用場景:

讀取配置檔案的類:配置檔案一般不變,只要有乙個類就夠了

**計數器

資料庫連線池;經常去new的話很耗資源

severlet

1,單例模式分:餓漢模式和懶漢模式,雙重檢測鎖式,靜態內部類(存在反射漏洞),列舉單例(缺點:無法實現懶載入)。

餓漢模式:在載入類的時候就自動建立

懶漢模式:在載入類的時候只宣告,只有在呼叫的時候才建立。

單例模式:最重要的是通過構造方法私有化,限制外部初始化例項,在內部建立,通過static關鍵字,使得外部可以通過類名呼叫方法,獲取類唯一例項。

餓漢模式例項:

package com.singleton;

/*單利模式singleton

* 應用場合:有些物件只需要乙個就夠了,如:皇帝,老婆

* 作用:保證某個應用程式中某個例項有且只有乙個

* 型別:餓漢模式,懶漢模式

* 區別:餓漢模式的特點是載入類時候比較慢,但是執行時候獲取物件的速度比較快。執行緒安全

* 懶漢模式的特定載入類的時候比較快,但執行時候獲取物件比較慢。執行緒不安全。

* */

/*餓漢模式:類載入後,這個類例項就會因為static關鍵字建立

* */

public class singleton

//2,建立唯一的應用例項,使用private static

private static singleton instance=new singleton();

//3,提供乙個用於獲取例項的方法,使用public static

public static singleton getinstance()

}

懶漢模式例項:

package com.singleton;

/*懶漢模式

* 懶漢模式:並不會在載入類的時候建立例項,而是在方法呼叫,用到的時候才會建立。

* */

public class singleton2

//2,宣告類唯一的應用例項,使用private static

private static singleton2 instance;

//3,提供乙個用於獲取例項的方法,使用public static

public static singleton2 getinstance()

return instance;

}}

呼叫這兩個類測試:

package com.singleton;

public class test

else

//懶漢模式

singleton2 s3=singleton2.getinstance();

singleton2 s4=singleton2.getinstance();

if(s3==s4)

else

}

模式的秘密 單例模式

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

模式的秘密 單例模式

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

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

前言 在我們的實際應用中,經常會出現整個應用中有且只有乙個,比如工具類。連線池,日誌,快取等等。這個時候經常就會考慮用單例設計模式來解決問題。一.餓漢式單例模式 public class singleton 自己建立乙個物件,供外界呼叫 private static singleton instan...