PHP单例模式Singleton Pattern的原理与实现介绍(php单例模式懒汉和饿汉)太疯狂了

随心笔谈9个月前发布 admin
183 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章介绍了PHP中使用`Singleton`模式实现单例对象的实现方式。通过定义一个静态变量`private static $instance = null;`,确保只会在首次调用构造函数时创建一个实例对象。构造函数`private function __construct()`被特殊处理,使其无法被外部实例化。文章还提到了如何通过`public static function getInstance()`方法获取唯一实例,以及相关的辅助方法(如`__clone()`、`__wakeup()`)来防止对象的克隆或反序列化。这种模式常用于需要共享状态但又不希望不同地方创建相同对象的场景中,但需要注意潜在的安全性问题。

<?php
class Singleton
{
// 私有的静态变量,用于存储唯一实例
private static $instance=null;
// 私有的构造方法,防止外部实例化
private function __construct() {}
// 公有的静态方法,用于获取唯一实例
public static function getInstance()
{
// 如果还没有实例化,则实例化一个新对象
if (self::$instance===null) {
self::$instance=new self();
}
// 返回实例化对象
return self::$instance;
}
// 私有的克隆方法,防止外部克隆对象
private function __clone() {}
// 私有的反序列化方法,防止外部反序列化对象
private function __wakeup() {}
}

© 版权声明

相关文章