典型單例的寫法
class Singleton {
private static volatile Singleton instance = null;
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
另一種優(yōu)美的寫法,利用靜態(tài)變量
class Singleton {
private static class SingletonHolder {
private static Singleton instance = new Singleton();
}
public Singleton getInstance(){
return SingletonHolder.instance;
}
}
更加優(yōu)美的寫法(android慎用)
enum Singleton {
INSTANCE;
public Singleton getInstance(){
return INSTANCE;
}
}