android 设计模式 单例模式 - gmtalang/test GitHub Wiki

静态内部类:全局对象

双重检索

public class IMManager { private static volatile IMManager sIMManager;

private IMManager() {
}

public static IMManager getInstance() {
    if (sIMManager == null) {
        synchronized (IMManager.class) {
            if (sIMManager == null) {
                sIMManager = new IMManager();
            }
        }
    }
    return sIMManager;
}//getInstance

}

静态内部类

public class IMManager {

private IMManager() {
}

public static IMManager getInstance() {

    return Singleton.sIMManager;
}//getInstance

private static class Singleton{
    private static final IMManager sIMManager = new IMManager();
}

}

枚举

public enum IMManager{ INSTANCE; void doSomething(){}

}