单例模式的几种写法
一、懒汉式
public class Singleton { // 私有的构造函数 private Singleton() { } // 静态变量 private static Singleton instance; // 静态方法 public static Singleton getInstance() { // 当instance为null时赋值 if (instance == null) { instance = new Singleton(); } return instance; } }
二、饿汉式
public class Singleton { // 私有的无参构造函数 private Singleton() { } // 静态变量 private static Singleton instance = new Singleton(); // 静态方法 public static Singleton getInstance() { return instance; } }
三、占位符式
public class Singleton { // 私有的构造方法 private Singleton() { } // 静态内部类 private static class SingletonInstance { private static Singleton instance = new Singleton(); } // 静态方法 public static Singleton getInstance() { return SingletonInstance.instance; } }