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)
?>

运行结果

相关推荐
五点六六六27 分钟前
基于 AST 与 Proxy沙箱 的局部代码热验证
前端·设计模式·架构
ServBay9 小时前
别在 PHP 代码里乱套 try-catch 了,10 个异常处理套路更厉害
后端·php
咖啡の猫12 小时前
Redis命令-Hash命令
redis·php·哈希算法
Yupureki12 小时前
《C++实战项目-高并发内存池》4.CentralCache构造
c语言·开发语言·c++·单例模式·github
会编程的土豆14 小时前
【从零学javase 第六天】网络编程(+多线程)
开发语言·网络·php
wwdoffice011014 小时前
304和316不锈钢有什么区别?哪个更好?
设计模式
云云只是个程序马喽14 小时前
海外短剧系统开发:支持多语言多支付海外上架app
php
网小鱼的学习笔记15 小时前
创建型设计模式(工厂、builder、原型、单例)
java·后端·设计模式
逆境不可逃15 小时前
【从零入门23种设计模式21】行为型之空对象模式
java·开发语言·数据库·算法·设计模式·职场和发展
阿珊和她的猫17 小时前
单例模式:确保唯一性与全局访问的设计方案
单例模式·状态模式