设计模式就是在我们实际编程过程中,逐渐总结出的一些解决问题的套路
单例:只有一个实例(实例化对象)
在整个软件系统运行过程中,这个类只被实例化一次,以后不管在哪里只调用这一个实例
例如实例化对象的创建要消耗大量的时间和资源
使用单例模式解决什么问题? 一般都是new对象太费劲,或者频繁的new对象没必要
饿汉式的单例:先new一个对象 谁用的时候就直接调用
public class Single {
//私有的构造,调用这个类的人就不能通过new来创建对象了
private Single(){
}
//私有的Single类型的类变量
private static Single single=new Single();
public static Single getInstance(){
return single;
}
}
Single s1=Single.getInstance();
Single s2=Single.getInstance();
Single s3=Single.getInstance();
Single s4=Single.getInstance();
Single s5=Single.getInstance();
不管用多少次都是调用的同一个new Single()对象
懒汉式单例模式:最开始对象时null,直到有第一个人调用我才new一个对象,之后所有调用我的都用到这个对象
public class Single1 {
//先私有化构造方法,让外面不能直接new对象
private Single1(){
}
private static Single1 s1=null;
public static Single1 getInstance(){
if(s1==null){
s1=new Single1();
}
return s1;
}
}
Single1 s1=Single1.getInstance();
Single1 s2=Single1.getInstance();
Single1 s3=Single1.getInstance();
Single1 s4=Single1.getInstance();
第一次调用的时候new Single1()对象,以后每次调用都调用第一次的new Single对象