TODO 饿汉式
(1) 将采用单例设计模式的类的构造方法私有化(采用private修饰)。
(2) 在其内部定义该类的实例化对象,并将其封装成private static类型。
(3) 定义一个静态方法返回该类的实例。*/
public class Singleton1 {
private static Singleton1 mSingleton = new Singleton1();
private Singleton1(){
}
public static Singleton1 getSingleton() {
return mSingleton;
}
}
//懒汉式
public class Singleton2 {
private Context mContext;
private static Singleton2 mSingleton = null;
private Singleton2(Context mContext){
this.mContext = mContext;
}
public static synchronized Singleton2 getInstance(Context mContext){
if(mSingleton==null){
mSingleton = new Singleton2(mContext);
}
return mSingleton;
}
}
//同步
public class Singleton3 {
private Context mContext;
private static Singleton3 mSingleton = null;
private Singleton3(Context mContext){
this.mContext = mContext;
}
//同步方法
public static Singleton3 getInstance(Context mContext){
if(mSingleton==null){
synchronized (Singleton3.class){
if(mSingleton==null){
mSingleton = new Singleton3(mContext);
}
}
}
return mSingleton;
}
}