android - 单例模式

发表于:,更新于:,By Sally
大纲
  1. 1. 懒汉模式
    1. 1.1. 一般用的比较多的,双重锁判断的
    2. 1.2. 静态内部类的写法

懒汉模式

一般用的比较多的,双重锁判断的

  • 注意关键字volatile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Singleton {
private volatile static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if(instance == null) {
synchronized(Singleton.class) {
if(instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}

静态内部类的写法

1
2
3
4
5
6
7
8
9
10
11
public class Singleton {
private Singleton() {}

private statice class SingletonLoader {
private static final Singleton INSTANCE = new Singleton();
}

public static Singleton getInstance() {
return SingletonLoader.INSTANCE;
}
}