07.java设计模式之单例模式

单例就是为了保证每次访问对象的时候都是同一个对象。

1.饿汉式

/**
 * 饿汉式
 */
public class Singletone {
    private  static  final Singletone singletone = new Singletone();
    private Singletone(){ }

    public static Singletone getSingletone() {
        return singletone;
    }
}

  

2.懒汉式

public class Singletone {
    private  static  Singletone singletone = null;
    private Singletone(){ }

    public static Singletone getSingletone() {
        if (singletone == null){
            singletone = new Singletone();
        }
        return singletone;
    }
}

  

3.双重加锁式     这个有空再仔细说为啥要双重加锁

public class Singletone {
    private  static  Singletone singletone = null;
    private Singletone(){ }

    public static Singletone getSingletone() {
        if (singletone == null){
            synchronized (Singletone.class){ //加锁
                if (singletone  == null){
                    singletone = new Singletone();
                }
            }
        }
        return singletone;
    }
}

  

 

posted on 2018-06-13 10:34  开心就好呀·  阅读(75)  评论(0编辑  收藏  举报

导航