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

单例模式:

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

  1. 构造器私有化(防止外部new创建实例)
private SingleTon() {}
  1. 类的内部创建对象
private final static SingleTon singleTon = new SingleTon();

3.向外暴露一个返回单例对象静态的公共方法,起到了懒加载效果,使用synchronized使得这方法线程安全

public static SingleTon getInstance() {
    if (singleTon == null) {
        singleTon = new SingleTon();
    }
    return singleTon;
}
  1. 具体代码
/**
 * 

懒汉式(线程不安全)

*

* 优点: 起到了Lazy Loading的效果,解决了线程安全问题
* 缺点: 效率太低了,每个线程在想获得类的实例的时候,执行getInstance方法都要进行同步,而其实这个方法只需要执行一次实例化代码就行了,后面的想获得该类实例,直接return就行,方法进行同步效率太低,实际开发中,不推荐使用这种方式。 *

*

* *

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

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