分懒汉模式和饿汉模式
1,懒汉模式
public class SluggardPattern {
//懒汉模式,创建一个实体私有的实体,提供一个对外的方法
private static final SluggardPattern sluggardPattern=new SluggardPattern();
private SluggardPattern(){
}
public static SluggardPattern getSluggardPattern(){
return sluggardPattern;
}
}
2,饿汉模式
public class HungryManPattern {
//饿汉模式,先不new对象,需要用到的时候在new一个对象
private static HungryManPattern hungryManPattern;
private HungryManPattern(){
}
private static HungryManPattern getInstance(){
if(hungryManPattern == null){
hungryManPattern=new HungryManPattern();
}
return hungryManPattern;
}
}
二者都可以实例化一个对象
懒汉模式的好处是不存在线程安全问题,坏处是一开始就实例化,有可能存在资源的浪费
饿汉模式的好处是需要用到的时候去实例化对象,有的话就返回对象,没有的话才去实例化对象