定义:
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
public class EagerSingleton { //指向自己实例的私有静态引用 private static EagerSingleton eagerSingleton = new EagerSingleton(); //私有的构造方法 private EagerSingleton(){}; //以自己实例为返回值的静态公有方法 public static EagerSingleton getInstance(){ return eagerSingleton; } }
public class LazySingleton { //指向自己实例的私有静态引用 private static LazySingleton lazySingleton = null; //私有的构造方法 private LazySingleton(){}; //以自己实例为返回值的静态公有方法 public static synchronized LazySingleton getInstance(){ if(lazySingleton == null){ lazySingleton = new LazySingleton(); } return lazySingleton; } }
单例模式作为最常用的设计模式之一,其实现方式除了饿汉式和懒汉式两种方式之外,还有双检锁/双重校验锁机制、登记式/静态内部类和枚举等方式。 饿汉式单例和懒汉式单例由于构造方法是private的,不可被继承。只能使用单例类提供的方法得到单例对象,不要使用反射,否则将会实例化一个新对象。
原文:https://www.cnblogs.com/scorpiozone/p/10582361.html