🧩 单例模式(Singleton Pattern)详解

单例模式是创建型设计模式中最基础的一种,核心目标是确保一个类全局只有一个实例,并提供一个访问它的全局入口。常用于数据库连接、配置管理等场景。

🔑 核心特点

  • 唯一性:通过私有构造函数和静态实例变量,阻止外部创建多个实例
  • 延迟初始化:实例在第一次使用时才被创建(部分实现)
  • 全局访问:提供静态方法或属性作为访问入口
  • 📌 线程安全:需处理多线程环境下的实例创建问题(如使用双重检查锁定)

📦 应用场景

  • 配置管理器(如 ConfigManager
  • 日志记录器(如 Logger
  • 资源管理器(如 ResourceManager
  • 数据库连接池(如 DBConnection

📝 代码示例(Python)

class Singleton:
    _instance = None
    
    def __new__(cls, *args, **kwargs):
        if not cls._instance:
            cls._instance = super().__new__(cls, *args, **kwargs)
        return cls._instance


s1 = Singleton()
s2 = Singleton()
print(s1 is s2)  # 输出: True

📌 注意事项

  • 避免过度使用,可能导致系统耦合度升高
  • 需考虑序列化反序列化时的实例一致性
  • 🚨 在多线程环境中需谨慎实现(推荐使用 __new__ 方法控制)
  • 可通过 __metaclass__ 或装饰器实现更灵活的单例逻辑

想要深入理解其他创建型设计模式?👉 点击查看创建型模式合集