php单例模式应用场景(php单例模式如何实现)
导语:PHP单例模式
php单例模式
单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。
要点主要有三个:
1、一个类只能有一个对象;
2、必须是自行创建这个类的对象;
3、要想整个系统提供这一个对象;
三私一公:
私有的构造方法 (防止类外实例化)
私有的克隆方法 (防止通过克隆生成对象)
私有的静态属性 (保存类的实例)
公有的静态方法 (调取这个类相当一个接口 )
从具体实现角度来说,就是以下三点:
一、是单例模式的类只提供私有的构造函数,
二、是类定义中含有一个该类的静态私有对象,
三、是该类提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象。
四、当然还要有一个private的clone方法,防止克隆;
使用单例模式可以避免大量的new操作。因为每一次new操作都会消耗系统和内存的资源。
PHP示例代码
class Redis {
private static $instance = null;
private $redis;
private $config;
private function __construct($config = ['host' => '192.168.59.131','port'=>6379])
{
$this->config = $config;
$this->redis = new \Redis();
$this->redis->connect($config['host'],$config['port']);
}
public static function getInstance($config)
{
if(!self::$instance instanceof Redis){
self::$instance = new self($config);
}
return self::$instance;
}
//防止克隆
private function __clone(){}
public function getRedisConn ()
{
return $this->redis;
}
public function __destruct ()
{
$this->redis->close();
self::$instance = NULL;
}
}
本文内容由快快网络小萱创作整理编辑!