单例设计模式
单例设计模式:一个类只有一个对象,也只能实例出一个对象。
实现方式:通过将构造方法私有化,并在类的内部自己new出一个实例,给出get方法。
适用场景:要求一个类只有一个对象,如果出现多个对象就会出现“不良反应”的地方。如项目共享数据的时候。
具体实现(single):
(1)饿汉式:预先new出对象
public class Hungry {
private static final Hungry hungry = new Hungry();
private Hungry(){ //私有化构造方法
}
/**
* 给出外部访问方法
* @return
*/
public static Hungry getHungry(){
return hungry;
}
}
(2)懒汉式:当在使用时才new出对象,线程安全,可以加入synchronized.
public class Slacker {
private static Slacker slacker = null;
private Slacker(){
}
public static Slacker getSlacker(){
if(slacker==null){
slacker = new Slacker();
}
return slacker;
}
}