单例模式之懒汉式(线程不安全)

单例模式:

一.单例模式之懒汉式(线程不安全)

1.构造器私有化(防止外部new创建实例)

private SingleTon() {}

2.类的内部创建对象

private final static SingleTon singleTon = new SingleTon();

3.向外暴露一个返回单例对象静态的公共方法,起到了懒加载效果

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

4.具体代码

/**
 * 

懒汉式(线程不安全)

*

* 优点: 起到了Lazy Loading的效果,但是只能在单线程下使用.
* 缺点: 如果在多线程下, 一个线程进入了if(sinigleTon == null)判断语句时,还未往下执行,另一个线程也通过了这个判断语句,这时便会产生多个实例。在多线程环境下不可使用这种方式。 *

*

* *

*/
public class SingleTon { // 1.构造器私有化 private SingleTon() { } // 2.类内部创建对象引用 private static SingleTon singleTon; // 3.向外暴露一个返回单例对象静态的公共方法,起到了懒加载效果 public static SingleTon getInstance() { if (singleTon == null) { singleTon = new SingleTon(); } return singleTon; } }

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