单例模式(Singleton Pattern)

单例模式是设计模式中的一种,确保一个类只有一个实例,并提供一个全局访问点。常用于需要全局状态管理资源唯一性的场景,例如数据库连接、配置管理、日志系统等。

应用场景 📌

  • 数据库连接池:避免重复创建连接,提高效率
    数据库连接池
  • 配置管理器:统一读取和修改配置参数
    配置管理器
  • 缓存系统:确保全局缓存对象一致性
    缓存系统

实现方式 🧱

以 PHP 为例,核心代码如下:

class Singleton {  
    private static $instance;  

    private function __construct() {  
        // 私有构造函数防止外部实例化  
    }  

    public static function getInstance() {  
        if (!self::$instance) {  
            self::$instance = new self();  
        }  
        return self::$instance;  
    }  
}  

📌 关键点

  1. 私有构造函数限制直接实例化
  2. 静态方法 getInstance 控制实例创建
  3. 使用静态变量保存唯一实例

优缺点 🔍

优点

  • 全局访问便捷
  • 节省内存资源
  • 控制资源创建逻辑

缺点

  • 违反单一职责原则,类承担创建和使用职责
  • 测试困难(需处理静态依赖)
  • 多线程环境下需额外同步机制

扩展阅读 📚

想了解更多设计模式?可参考 工厂模式 的实现细节,或 观察者模式 的应用场景。

单例模式