Java 设计模式:单例模式的 10 种实现方式及优缺点
单例模式(Singleton Pattern)是设计模式中最为经典的模式之一,其核心思想是确保一个类只有一个实例,并提供一个全局访问点。单例模式在实际开发中非常常见,比如配置管理器、日志记录器、线程池等场景。本文将详细探讨 Java 中单例模式的 10 种实现方式,并分析每种方式的优缺点。
单例模式简介
单例模式的实现需要满足以下三个条件:
- 私有化构造方法:防止外部通过
new
关键字创建实例。 - 提供一个静态的私有实例:确保类只有一个实例。
- 提供一个公共的静态方法:用于获取唯一的实例。
单例模式可以分为“懒汉式”和“饿汉式”两大类,其中懒汉式在需要时才创建实例,而饿汉式在类加载时就创建实例。此外,还有一些更高级的实现方式,比如使用枚举、静态内部类等。
懒汉式单例(非线程安全)
懒汉式单例是最简单的实现方式,它在第一次调用 getInstance()
方法时才创建实例。这种方式的优点是延迟加载,但缺点是线程不安全。
public class