单例模式 “饿汉式”
不管你用的用不上,一开始就建立这个单例对象
public class Single(){
private static Single instance = new Single(); //私有,静态的 类自身实例
private Single(){} //私有的构造函数
public static Single getInstance(){ //公开,静态的工厂方法
return instance;
}
}
public class Single(){
private static Single instance = null; //不建立对象
private Single(){}
public static Single getInstance(){ //公开,静态的工厂方法
if(instance== null) { //先判断是否为空
instance = new Single(); //懒汉式做法
}
return instance ;
}
}
因此,对于资源密集,配置开销较大的单体更合理的做法是将实例化(new)推迟到使用它的时候。
即惰性加载(Lazy loading),它常用于那些必须加载大量数据的单体。
例如:
程序员定义的一个读取配置文件的工具类。在项目中可能多次使用这个类,如果每次都new一个实例出来,这样在运行期间就会存在很多实例,而实际上只需要一个实例对象就可以了。多出来的实例对象会浪费内存资源