设计模式之单例模式

这个设计模式我相信几乎是使用最多的一种了
它是确保一个类中只有一个实例,一般用来读取配置,产生其它依赖对象
可以避免对资源的多重占用,但单例模式对测试是不利的,扩展也困难

package cn.byhook.design;

/**
 * 作者: Andy
 * 时间: 2016-07-27
 * 单例模式
 */
public class Singleton {

    /**
     * 饿汉式单例
     */
    private static Singleton sHungryInstance = new Singleton();

    /**
     * 懒汉模式单例
     */
    private static Singleton sLazyInstance;

    private Singleton(){

    }

    /**
     * 饿汉模式单例
     * @return
     */
    public static Singleton getHungryInstance(){
        return sHungryInstance;
    }

    /**
     * 懒汉模式单例
     * 线程安全
     * @return
     */
    public static Singleton getLazyInstance(){
        if(sLazyInstance == null) {
            synchronized (Singleton.class){
                if(sLazyInstance == null) {
                    sLazyInstance = new Singleton();
                }
            }
        }
        return sLazyInstance;
    }


}

你可能感兴趣的:(设计模式之单例模式)