天天看點

23種設計模式-單例模式

package com.nuoyuan.preone.utils;


/**
 * Author: yangweichao
 * Date:   2019/2/21 4:04 PM
 * Description: 一個程序中隻存在唯一一個對象
 */


// 餓漢式
public class SingleTon {


    private static SingleTon singleTon = new SingleTon();

    private SingleTon() {
    }

    public static SingleTon getInstance() {

        return singleTon;
    }
}


/**
 *
 * 懶漢式的特點是延遲加載,比如配置檔案,采用懶漢式的方法,顧名思義,懶漢麼,很懶的,配置檔案的執行個體直到用到的
 * 時候才會加載。。。。。。
 *
 * 懶漢式
 */

public class SingleTon {


    private static SingleTon singleTon = null;

    private SingleTon() {
    }

    public static SingleTon getInstance() {
        if (singleTon == null) {
            singleTon = new SingleTon();
        }
        return singleTon;
    }
}


//帶鎖方式 相容并發
public class SingleTon {


    private static SingleTon singleTon = null;

    private SingleTon() {
    }

    public static SingleTon getInstance() {
        if (singleTon == null) {
            synchronized (SingleTon.class) {
                if (singleTon == null)
                    singleTon = new SingleTon();
            }
        }
        return singleTon;
    }
}