1. 程式人生 > 其它 >單例模式的幾種寫法

單例模式的幾種寫法

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; }