饿汉:早就实例过,已有实例,(准备好饭了都)饿了随时 可以吃
package java_demo;
/**
* 单例模式
* @author mzj07
* 1.构造方法私有化,使得该类无法在外部通过new实例化
* 2.准备一个类属性指向一个实例对象(静态属性指向实例)
* 3.定义一个方法获取实例 对象singleton
*
*/
public class Singleton {
/**
* 饿汉式,无论如何都会创建好一个实例。饿了随时就可以吃。
*/
private static Singleton singleton = new Singleton();
private Singleton() {
}
public static Singleton getSingleton() {
return singleton;
}
}
懒汉:在调用的时候才会创建实例,才可以吃。懒到提前做好饭(实例好对象)
package java_demo;
/**
* 单例模式
* @author mzj07
* 1.构造方法私有化,使得该类无法在外部通过new实例化
* 2.准备一个类属性指向一个实例对象(静态属性指向实例)
* 3.定义一个方法获取实例 对象singleton
*
*/
public class Singleton {
private static Singleton singleton ;
private Singleton() {
}
public static Singleton getSingleton() {
if (null==singleton) {
singleton = new Singleton();
}
return singleton;
}
}
单例模式的优缺点及使用场景参考:https://www.cnblogs.com/restartyang/articles/7770856.html