PHP开发设计模式:单例模式

PHP开发设计模式:单例模式

特点:

三私一公:私有的静态变量(存放实例),私有的构造方法(防止创建实例),私有的克隆方法 (防止克隆对象),公有的静态方法(对外界提供实例)

应用场景:

程序应用中,涉及到数据库操作时,如果每次操作的时候连接数据库,会带来大量的资源消耗。可以通过单例模式,创建唯一的数据库连接对象。

代码实现

bash 复制代码
<?php
class Singleton
{
	private static $_instance;
	private function __construct(){}
	private function __clone(){}
    //静态方法,单例统一访问入口
    static public function getInstance() {
        if (is_null ( self::$_instance ) || !isset ( self::$_instance )) {
            echo '创建唯一对象';
            self::$_instance = new self ();
        }
       
        return self::$_instance;
    }
}

echo '创建对象a:';
$a =  Singleton::getInstance();
var_dump($a);
echo '<br>';


echo '创建对象b:';
$b =  Singleton::getInstance();
var_dump($b);
echo '<br>';

echo '判断是否是同一个对象:';
var_dump($a === $b); // 输出: bool(true)
?>

运行结果

相关推荐
zimoyin3 小时前
webman 使用 PHPUnit
php
╰つ栺尖篴夢ゞ3 小时前
HarmonyOS Next面试题之主线程与子线程访问同一个单例,获取的对象是同一个吗?
单例模式·多线程·harmonyos·sendable·actor模型·内存隔离
万世浮华戏骨3 小时前
PHP 与数据库交互 与 SQL注⼊漏洞
数据库·sql·php
Johnstons4 小时前
网络可观测性落地指南:从“出了问题才排查“到“实时感知全网状态“
开发语言·网络·php
Old Uncle Tom4 小时前
Agent 技能的五种设计模式
设计模式
heRs BART4 小时前
Ubuntu 20.04配置网络
网络·ubuntu·php
祁_z5 小时前
【ReACT 设计模式】(思考 - 行动 - 观察)
设计模式
2501_948114246 小时前
大模型API调用成本优化的工程路径:星链4SAPI聚合网关的技术实践
大数据·开发语言·人工智能·架构·php
宋拾壹6 小时前
php网站小程序接入抖音团购核销
android·小程序·php
Makoto_Kimur6 小时前
Spring用了哪些设计模式?
java·spring·设计模式