重写设计模式-用λ实现单例模式


DCL 单例 用λ表达式来实现

import java.util.Optional;

public class Singleton{
  //1. 构造方法私有化
  //2. 持有自身的静态引用
  //3. 提供获取自身静态引用的公有静态方法

  private Singleton(){}
  private static volatile Singleton singleton;
  public static Singleton getInstance(){
     return Optional.ofNullable(singleton).orElseGet(()->{
       synchronized(Singleton.class){
         return Optional.ofNullable(singleton).orElse(new Singleton());
       }
     });
  }
}

评论