1、Android 单例模式
1、一共五种方案。核心就是私有构造方法,使得创建的实例只有一个。以后都复用这个实例。
2、推荐使用带有synchronized线程保护的DCL方式,和静态内部类static final变量定义类的方式
// DLC
public class SingletionDLC {
private volatile static SingletionDLC mInstance;
private SingletionDLC() {}
public static SingletionDLC getmInstance() {
if (mInstance == null) {
synchronized (SingletionDLC.class) {
if (mInstance == null) {
mInstance = new SingletionDLC();
}
}
}
return mInstance;
}
}
// 静态内部类
public class SingletionInternalClass {
private SingletionInternalClass() {}
public static SingletionInternalClass getInstance() {
return SingletionInternalClassHolder.instance;
}
private static class SingletionInternalClassHolder {
private static final SingletionInternalClass instance = new SingletionInternalClass();
}
}