废话不多说,直接说如何实现:
最简单的用法:
public class Single(){
//私有静态类变量
private static Single single= null;
//私有构造方法
private Single(){
}
//公有的静态获取类实例方法
public static Single getInstance(){
if(single==null){
single = new Single();
}
return single;
}
}
当然还有线程安全:
1.可以在公共方法上加锁synchronized
2.先实例化,声明类的私有变量时就实列化。
3.双重加锁:
public class Single{
private static Single singlet=null;
private Singlet(){}
public static Single getInstance(){
if(single==null){
synchronized(Single.class)
{
single=new Single();
}
}
return single;
}
}