package 单例模式;
/*
* 应用场景:保证在整个应用之中某个对象的实例只有一个
* 单例模式种的《 懒汉模式》
* */
public class Singleton {
//01 将构造方法私有化,外界就无法用new Singleton()的方式获得实例
private Singleton(){};
//02 申明类得唯一实例
private static Singleton instance = null;
//为外界提供获得实例的方法
public static Singleton getInstance(){
if(null == instance){//懒汉模式 在Singleton类加载时并没有创建Singleton的实例,当Singleton的实例为null时才创建
instance=new Singleton();
}
return instance;
}
}
package 单例模式;
/*
* 应用场景:保证在整个应用之中某个对象的实例只有一个
* 单例模式种的《 饿汉模式》 较之懒汉模式线程较安全
* */
public class Singleton1 {
//01 将构造方法私有化,外界就无法用new Singleton()的方式获得实例
private Singleton1(){};
//02 创建实例
private static Singleton1 instance = new Singleton1();//饿汉模式 是在类加载时就创建实例
//为外界提供获得实例的方法
public static Singleton1 getInstance(){
return instance;
}
}
package 单例模式;
public class Test {
public static void main(String[] args) {
Singleton singleton = Singleton.getInstance();
System.out.println(singleton);
}
}