<strong>//第一种非延迟加载的单利模式</strong><strong>public class SingleInstance{
private SingleInstance(){};
private static final SingleInstance mSingleInstance=new SingleInstance();
public static SingleInstance getInstance()
{
return mSingleInstance;
}
}</strong>
<strong>//第二种 简单的同步延迟加载,效率相对较低
public class SingleInstance{
private SingleInstance(){};
private static SingleInstance mSingleInstance=null;
public static synchronized SingleInstance getInstance()
{
if (mSingleInstance==null)
mSingleInstance=new SingleInstance();
return mSingleInstance;
}
}</strong>
<strong>//第三种 双重延迟的加载
public class SingleInstance{
private SingleInstance(){};
private static volatile SingleInstance mSingleInstance=null;
public static SingleInstance getInstance()
{
if (mSingleInstance==null)
{
synchronized (SingleInstance.class)
{
if (mSingleInstance==null)
{
mSingleInstance=new SingleInstance();
}
}
}
return mSingleInstance;
}
}</strong><strong>
//类加载器的延迟加载的单例模式
public class SingleInstance{
private static class HolderClass{
static final SingleInstance mSingleInstance=new SingleInstance();
}
public static SingleInstance getInstance()
{
return HolderClass.mSingleInstance;
}
}
</strong>
本文介绍了四种不同的单例模式实现方式:非延迟加载、简单同步延迟加载、双重检查锁定的延迟加载及利用静态内部类实现的延迟加载。每种实现都有其特点和适用场景。
1234

被折叠的 条评论
为什么被折叠?



