目录

创建型 - 单例模式

设计思想

有一些人,你希望是唯一的,程序也一样,有一些类,你希望实例是唯一的。单例就是一个类只能有一个对象(实例),单例就是用来控制某些事物只允许有一个个体,比如在我们生活的世界中,有生命的星球只有一个——地球(至少到目前为止人类所发现的世界中是这样的)。

人如果脚踏两只船,你的生活将会翻船!程序中的部分关键类如果有多个实例,将容易使逻辑混乱,程序崩溃!

类图

代码实现

public final class Singleton {
  private static volatile Singleton instance;

  public String value;

  public static Singleton getInstance(String value) {
    Singleton result = instance;
    if (result != null) {
      return result;
    }
    synchronized(Singleton.class) {
      // double check
      if (instance == null) {
        instance = new Singleton(value);
      }
      return instance;
    }
  }
}

适用场景

  1. 如果程序中的某个类对于所有客户端只有一个可用的实例,可以使用单例模式。
  2. 项目中的一些全局管理类(Manager)可以用单例来实现。