单例模式(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;
}
}
📌 关键点:
- 私有构造函数限制直接实例化
- 静态方法
getInstance
控制实例创建 - 使用静态变量保存唯一实例
优缺点 🔍
✅ 优点:
- 全局访问便捷
- 节省内存资源
- 控制资源创建逻辑
❌ 缺点:
- 违反单一职责原则,类承担创建和使用职责
- 测试困难(需处理静态依赖)
- 多线程环境下需额外同步机制
扩展阅读 📚
想了解更多设计模式?可参考 工厂模式 的实现细节,或 观察者模式 的应用场景。