饿汉单例模式:在用类获取对象的时候,对象已经提前为你创建好了
设计步骤:
定义一个类,把构造器私有
定义一个静态变量存储一个对象
public class SingleInstance {
//构造器私有
private SingleInstance() {
}
public static SingleInstance instance=new SingleInstance();//饿汉单例要求提前创建好,只产生一个对象所以用static修饰
}
懒汉单例模式:在真正需要该对象的时候,才去创建一个对象,延迟加载对象
设计步骤:
定义一个类,把构造器私有
定义一个静态变量存储一个对象
提供一个返回单例对象的方法
测试一下
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
SingleInstance s1=SingleInstance.getInstance();
SingleInstance s2=SingleInstance.getInstance();
System.out.println(s1==s2);//返回true,单例类设计成功
}
}
主函数:
public class SingleInstance {
//懒汉单例
//构造器私有
private SingleInstance() {
}
private static SingleInstance instance; //此时还没有对象,需要设计为privat,要不人家就可以通过点的方式访问,结果获取的就都是null
/**返回一个单例对象
* @return the instance
*/
public static SingleInstance getInstance() {
if(instance==null) {
//第一次拿,就创建对象
instance=new SingleInstance();
}
return instance;
}
}