设计模式3:单例模式Singleton
核心思想是私有化构造方法, 使用场景是一类只允许实例化一次,然后要全局可使用这个实例
1、饿汉-类加载时实例对象被创建
public class HungrySingleton {
private HungrySingleton(){};
private static HungrySingleton hungrySingleton=new HungrySingleton();
public static HungrySingleton getInstance(){
return hungrySingleton;
}
}
class TestHungrySingleton{
public static void main(String args[]){
HungrySingleton sg1= HungrySingleton.getInstance();
HungrySingleton sg2= HungrySingleton.getInstance();
System.out.println(sg1.equals(sg2));
}
}
2、懒汉-类加载时不创建实例对象,首次使用该对象时被创建
public class LazySingleton {
private LazySingleton(){};
private static LazySingleton lazySingleton;
public static LazySingleton getInstance(){
if(lazySingleton==null) lazySingleton=new LazySingleton();
return lazySingleton;
}
}
class TestLazySingleton{
public static void main(String args[]){
LazySingleton sg1= LazySingleton.getInstance();
LazySingleton sg2= LazySingleton.getInstance();
System.out.println(sg1.equals(sg2));
}
}