java設計模式 單例模式 學習筆記

2021-08-11 06:38:07 字數 1055 閱讀 2615

1、為什麼使用單例設計模式?

為了避免多個例項造成資源浪費,與避免多例項多次呼叫出現的錯誤

2、什麼是單例設計模式?

單例模式能夠保證整個應用中有且只有乙個例項

3、怎麼使用單例模式?

(1)私有化該類的建構函式

(2)在

本類中new乙個物件

(3)定義乙個公有的方法,返回由該類建立的物件

4、單例模式的寫法

4.1 餓漢式[可用]

public class singleton 

public static singleton getinstance()

}

訪問方式:

singleton instance = singleton.getinstance();

4.2 懶漢式[執行緒不安全,不可用]

public class singleton ;

private static singleton instance

=null;

public static singleton getinstance()

return

instance;}

}

當多個執行緒執行 if(instance==null) 時而還沒執行到 instance=new singleton() 都會進入, 然後都將執行 instance=new singleton()導致

4.6 懶漢式雙重校驗鎖[推薦用]

public class singleton 

private static singleton instance

= null;

public static singleton getinstance() }}

return

instance;}

}

寫兩次if(instance==null), 第一次避免如果已有例項還要執行同步操作導致的效率問題, 第二次保證了即使多個執行緒通過

if(instance==null)

單例模式(Singleton) 設計模式學習筆記

構造方法私有化 宣告乙個靜態私有的本類物件 給外部提供乙個靜態方法獲取物件例項 餓漢模式 類被載入後物件被建立 缺點 沒有懶載入效果 author lixiang date 2019年04月16日 11 05 history 2019年04月16日 11 05 lixiang create.publ...

設計模式學習(Java) 單例模式

其實我們在程式設計過程中往往都用到了一些設計模式,只是不知道他們還有具體的名稱定義 翻閱了 設計模式之禪 後,覺得自己有必要系統地了解和學習一下程式設計的原則和一些常用的設計模式。為了加深自己的理解,在此記錄一下。單例模式 顧名思義,就是指某乙個類在程式中只會有乙個例項。為什麼使用單例模式?1 節省...

Java學習 單例設計模式

設計模式 是對問題行之有效的方法,是一種思想。單例模式 在其所解決的問題中,乙個類中只有乙個物件存在。這乙個物件好比是乙個共同資料,多個程式操作的其實這乙個物件。q1 如何保證物件唯一性?1.不允許其他程式new乙個物件 2.在這個類中就已經存在乙個物件 3.通過方法來讓其他程式來獲取這唯一的物件 ...