🧩 单例模式(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__
或装饰器实现更灵活的单例逻辑
想要深入理解其他创建型设计模式?👉 点击查看创建型模式合集