单例模式--延时初始化
Posted 空山皓月
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式--延时初始化相关的知识,希望对你有一定的参考价值。
基本单例模式:
final class Singleton{
private static Singleton s=new Singleton(47);
private int i;
private Singleton(int x){i=x;}
public static Singleton getReference(){
return s;
}
public int getValue(){return i;}
public void setValue(int x){i=x;}
}
静态延时初始化:
final class StaticSingleton{
private static StaticSingleton s;
private int i;
private StaticSingleton(int x){i=x;}
public static StaticSingleton getReference(){
if(s == null){
s=new StaticSingleton(47);
}
return s;
}
public int getValue(){return i;}
public void setValue(int x){i=x;}
}
类加载延时初始化:
final class InnerSingleton{
private static InnerSingleton s;
private int i;
private InnerSingleton(int x){i=x;}
private static class SingletonHolder{
static InnerSingleton instance =new InnerSingleton(47);
}
public static InnerSingleton getReference(){
return SingletonHolder.instance;
}
public int getValue(){return i;}
public void setValue(int x){i=x;}
}
以上是关于单例模式--延时初始化的主要内容,如果未能解决你的问题,请参考以下文章