1 public class SingleInstance {
2 /**
3 * 懒汉单例模式:当真正需要该对象的时候,才去创建一个对象(延迟加载对象)
4 * 1.定义一个类,把构造器私有
5 * 2.定义一个静态变量存储一个对象
6 * 3.提供一个返回单例对象的方法
7 */
8 // 创建一个静态变量存储对象
9 private static SingleInstance instance;
10
11 // 私有化构造器
12 private SingleInstance(){}
13
14 // 定义一个方法,让其他地方可以用来调用获取一个对象
15 public static SingleInstance getInstance(){
16 if (instance == null){
17 instance = new SingleInstance();
18 }
19 return instance;
20 }
21 }
1 // 测试懒汉单例
2 public static void main(String[] args) {
3 SingleInstance instance1 = SingleInstance.getInstance();
4 SingleInstance instance2 = SingleInstance.getInstance();
5 SingleInstance instance3 = SingleInstance.getInstance();
6
7 System.out.println(instance1);
8 System.out.println(instance2);
9 System.out.println(instance3);
10 System.out.println(instance1 == instance3);
11 }