单例模式是一种常用的设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。

核心概念

  • 确保只有一个实例:单例类必须保证只有一个实例存在。
  • 全局访问点:提供一个全局访问点供外部获取这个实例。

实现方式

以下是一个简单的单例模式实现:

public class Singleton {
    private static Singleton instance;

    private Singleton() {}

    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

使用场景

  • 控制对象实例数量:例如,数据库连接池,只允许有一个连接实例。
  • 需要全局访问点:例如,日志记录器,只允许有一个实例来记录日志。

优缺点

优点

  • 控制实例数量:避免创建多个实例造成的资源浪费。
  • 全局访问点:方便全局访问和管理。

缺点

  • 破坏封装性:单例模式可能会破坏类的封装性,因为客户端可以访问到单例类的内部实现。
  • 扩展性差:单例模式难以扩展,因为单例类的实例是固定的。

相关链接

更多关于设计模式的介绍,请访问设计模式概述