单例模式--延时初始化

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;}
}

以上是关于单例模式--延时初始化的主要内容,如果未能解决你的问题,请参考以下文章

JAVA的单例模式与延时加载

设计模式-单例模式总结

单例模式的5种实现方式

如何实现单例模式

单例模式

java的单例设计模式(对象的延时加载)考试专用