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