首页 > 其他 > 详细

单例模式--延时初始化

时间:2017-02-19 10:51:10      阅读:282      评论:0      收藏:0      [点我收藏+]

基本单例模式:

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

单例模式--延时初始化

原文:http://www.cnblogs.com/ssMellon/p/6414810.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!