单例模式(Singleton Pattern)
单例模式,属于创建类型的一种常用的软件设计模式。通过单例模式的方法创建的类在当前进程中只有一个实例(根据需要也有可能一个线程中属于单例)
PHP实现单例模式
<?php
class Singleton
{
static private $instance;
private function __construct()
{
}
private function __clone()
{
}
static public function getInstance(){
if(!self::$instance instanceof self){
self::$instance = new self();
}
return self::$instance;
}
public function say(){
echo '我是一个单例';
}
}
$instance = Singleton::getInstance();
$instance->say();
?>
单例模式在PHP中的应用场景
(1)应用程序与数据库交互 一个应用中会存在大量的数据库操作,比如过数据库句柄来连接数据库这一行为,使用单例模式可以避免大量的new操作,因为每一次new操作都会消耗内存资源和系统资源。 (2)控制配置信息 如果系统中需要有一个类来全局控制某些配置信息, 那么使用单例模式可以很方便的实现,如日志文件、应用配置
<?php
class DB
{
private $db;
private static $instance;
private function __construct()
{
$this->db = mysqli_connect();
}
private function __clone()
{
}
public static function getInstance(){
if(!self::$instance instanceof self){
self::$instance = new self();
}
return self::$instance;
}
public function getUserInfo()
{
}
}
$_db = Db::getInstance();
$_db->getUserInfo();
?>
|