Skip to content

Singleton 模块

单例模式实现 - 线程安全版本。

概述

singleton 模块提供线程安全的单例模式实现,使用元类(Metaclass)确保类只有一个实例。支持测试隔离的重置功能。

快速开始

python
from FQBase.Foundation.singleton import singleton

@singleton
class DatabaseConnection:
    def __init__(self):
        self.host = "localhost"

# 获取单例实例
db1 = DatabaseConnection()
db2 = DatabaseConnection()
assert db1 is db2  # True

核心组件

组件说明
SingletonMeta单例元类,线程安全的实例创建
singleton单例装饰器
reset_singleton()重置单例实例
get_instance()获取当前实例(不创建)
has_instance()检查实例是否存在

特性

  • 线程安全: 使用双检查锁定(Double-Checked Locking)模式
  • 可重置: 支持测试隔离,清除单例实例
  • 元信息保留: 保留原始类名、模块和文档字符串

使用场景

  • 全局配置管理器
  • 数据库连接池
  • 日志记录器
  • 缓存管理器

文档索引