Java單例設計模式
阿新 • • 發佈:2022-05-09
單例設計模式:保證一個類僅有一個示例,並提供一個訪問它的全域性訪問點。
1、構造方法私有化
2、宣告一個本地物件
3、給外部提供一個例項方法獲取物件例項
兩種實現方式:
1、餓漢式:在類被載入後,物件被創捷,程式結束後被釋放
2、懶漢式:在第一次呼叫 getInstance 方法時,物件被建立,程式結束後釋放
在專案中為什麼要使用單例模式,單例模式有什麼好處?
目的是為了儘可能減少頻繁建立物件帶來的記憶體消耗,提高效率。
工具類會頻繁被呼叫,在設計工具類(工具類只有功能方法,沒有屬性)的時候,常使用單例模式。
//餓漢式,佔用記憶體時間長,效率高 publicclass Singleton{ private Singleon(){ } private static Singleton s = new Singleton(); public Singleton getInstance(){ return s; }
public static void main(String args[]){
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance(); // s1==s2 ,單例模式只能獲取一個例項物件
} }
//懶漢式,佔用記憶體時間短,效率低(懶載入,延遲載入)
//在多執行緒訪問時,存在安全問題
public class Singleton{ private Singleton(){ } private static Singleton s; public Singleton getInstance(){ if(s==null){ s = new Singleton(); } return s; } }