单列模式

what's this?

饿汉式/懒汉式

实现:

public class Singleton {
  private Singleton(){}

  private static Singleton singleton;


  public static Singleton getSingleton(){
    if(singleton == null){
      synchronized (Singleton.class){
        if(singleton == null){
          singleton = new Singleton();
        }
      }
    }
    return singleton;
  }
}

 

场景:

  一段跟业务相关的代码在不同的模块中被重复地使用到,可以将这段代码抽取出来,封装在一个类里面,以供各个模块调用。

  那么问题来了。是不是要在各个模块中都生成该类的实例呢?如果是,这种都创建一个实例的做法会浪费资源,显然是不合理的。

  如果是用静态方法呢?该类可能依赖其他的实例对象。

  单例,是需要在多处模块中通过对象来调用其中的方法,又不想重新创建对象的情况下使用。

posted @ 2017-10-21 11:26  bruce.chen  阅读(110)  评论(0)    收藏  举报