java模式之单例
懒汉式:需要实例的时候new
public class Singleton_Lazy {
private static Singleton_Lazy mSingleton;
private Singleton_Lazy (){}
private static Singleton_Lazy getInstance(){
if(mSingleton == null){
mSingleton = new Singleton_Lazy();
}
return mSingleton;
}
}
饿汉式:类转载的时候就实例化注意关键字static
public class Singleton_hungry {
private static Singleton_hungry instance = new Singleton_hungry();
private Singleton_hungry(){ }
public static Singleton_hungry getInstance(){
return instance;
}
}
内部静态类:(推荐这种方法,安全,且按需创建实例)
public class Singleton_innerStaticClass {
private static class SingletonHolder {
private static final Singleton_innerStaticClass INSTANCE = new Singleton_innerStaticClass();
}
private Singleton_innerStaticClass(){ }
public static final Singleton_innerStaticClass getInstance(){
return SingletonHolder.INSTANCE;
}
}