设计模式之单例模式8种实现方式,其三:懒汉式(线程不安全)

实现方式:

1.构造方法私有化

2.创建类的静态变量,不实例化

3.向外部暴露一个静态的公共方法,并判断是否存在实例,如果不存在,则实例化

案例:

package singlePattern;

public class SinglePattern3 {

    private SinglePattern3(){

    }

    private static SinglePattern3 instance;


    public static SinglePattern3 getInstance(){
        if(instance == null){
            instance = new SinglePattern3();
        }
        return instance;
    }

}

优缺点分析:

1.起到了Lazy Loading效果,但是只能在单线程下使用

2.如果在多线程下,一个线程进入if(instance == null)判断语句块,还未来得及往下执行, 另一个线程也通过了这个判断语句,这时便会产生多个实例。所以在多线程环境下不可使用这种方式

3.结论:在实际开发中,不要使用这种方式。

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