package testSingleTon;
/*单例模式主要作用是保证在java应用程序中,
一个类class只有一个实例存在,一般SingleTon模式通常有几种形式
第一种形式:定义一个类,它的构造函数为private的,
有一个static的private的该类变量,在类初始化时实例化,
通过一个public的getInstance方法获取对它的引用,继而调用其中的方法*/
/*
* 单例模式
*/
public class SingleTon {
* 第一种单例:饱汉模式
private SingleTon(){
}
//实例化放在静态代码块里可提高程序的执行效率,但也可能更占用空间
//注意这是private 只供内部调用
private static SingleTon instance = new SingleTon();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static SingleTon getInstance(){
return instance;
}
}
/*
* 第二种单例模式:饥汉模式
*/
public class SingleTon{
private SingleTon(){
}
private static SingleTon instance = null;
public static synchronized SingleTon getInstance(){
//这个方法比上面有所改进,不用每次都进行生成对象,
//只是第一次使用时生成实例,提高了效率
if(instance==null)
instance=new SingleTon();
return instance;
}
}