单例模式
1.单例的实现
public class Singleton {
private Singleton(){};
private static Singleton st = null;
public static Singleton getSt(){
if(null == st){
st = new Singleton();
}
return st;
}
}
2.测试
/**
* 单例模式的demo
* 使用场景:我们只希望在JVM中,只有一份实例存在
* @author zy
*/
public class M {
public static void main(String[] args) {
Singleton st = Singleton.getSt();
}
}
tips:
单例模式,细分为很多种,比如懒汉式、饿汉式、双检索等写法。文中演示的是懒汉式写法。其实最好的写法是使用枚举来实现,因为枚举从编译的层面,控制只实例化一次,并且拒绝了反射来第二次实例化,but,枚举方式来实现在实际使用中是很少的,也许是因为枚举是JDK1.5才加入的缘故吧。。。
但是,单例模式肯定有以下特点:
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
更详细的单例设计模式,请戳我