單例模式的幾種寫法
阿新 • • 發佈:2022-04-04
1. 懶漢模式,雙層檢查機制
public class SingleOne { private static volatile Object object=null; /** * 懶漢模式 * 雙重判斷模式 * @return */ public static Object getInstance(){ if(object==null){ synchronized (SingleOne.class){ if(object==null){ object=new Object(); } } } return object; } }
2. 餓漢模式(內部類靜態類)
public class SingleTwo { /** * 餓漢模式 * 靜態內部類方式 */ private static class ObjectHandler{ private static Object object = new Object(); } private SingleTwo(){ }public static SingleTwo getInstance(){ return ObjectHandler.object; } }
3. 餓漢模式(靜態程式碼塊)
private static Object instance = null; private SingleThree(){} /** * 靜態內部類方式 */ static { instance = new Object(); } public static SingleThree getInstance(){return instance; }