php开发模式简单介绍之单例模式

单例模式:确保某一个类只有一个示例,并且自行实例化,向整个系统提供业务。

为什么使用它:

1.使用这种模式可以大量new操作消耗资源,php中数据库的应用比较常见,这样可以减少对数据库的连接。

2.可以实现一个类控制全局的配置信息。

缺点:

1.每次访问请求时都需要检测是否存在该类实例,可以通过使用静态初始化解决此问题。

php简单示例:

//单例模式
class Single
{

    //静态变量保存对象
    static private  $instance;

    //实例化的一些参数
    private $config;

    //防止直接被创建
    private function __construct($config)
    {
        $this->config = $config;
    }


    //防止被克隆
    private function __clone() {}


    //对外访问
    static public function getInstance($config)
    {

        //$instance是否是Single的对象
        if(!self::$instance instanceof self)
        {
            self::$instance = new self($config);
        }
        return self::$instance;
    }


    /**
     * 一些其他的成员方法,这里举一个例子
     */
    public function getId()
    {
        //如果config中有id
        return $this->config['id'];
    }


}

//使用
$config = ['id' => 1];
$obj = Single::getInstance($config);
echo $obj->getId();
//输出  1
添加新评论