singleton pattern

单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。
  

单例模式有一下特点:
  1、单例类只能有一个实例。
  2、单例类必须自己自己创建自己的唯一实例。
  3、单例类必须给所有其他对象提供这一实例。
  单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。通常,选择单例模式就是为了避免不一致状态,避免政出多头。

 

饿汉式单例:

View Code
 1  //饿汉式单例类.在类初始化时,已经自行实例化 
 2  public class Singleton1 {
 3      //私有的默认构造子
 4      private Singleton1() {}
 5      //已经自行实例化 
 6      private static final Singleton1 single = new Singleton1();
 7      //静态工厂方法 
 8      public static Singleton1 getInstance() {
 9          return single;
10      }
11  }

懒汉式单例:

View Code
 1  //懒汉式单例类.在第一次调用的时候实例化 
 2  public class Singleton2 {
 3      //私有的默认构造子
 4      private Singleton2() {}
 5      //注意,这里没有final    
 6      private static Singleton2 single=null;
 7      //静态工厂方法 
 8      public synchronized  static Singleton2 getInstance() {
 9           if (single == null) {  
10               single = new Singleton2();
11           }  
12          return single;
13      }
14  }
原文地址:https://www.cnblogs.com/caidi/p/3072612.html