PHP 单例模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 单例模式相关的知识,希望对你有一定的参考价值。

一、什么是单例模式?

    某个类是能有一个实例对象,当自动实例化时,向整个系统提供这个实例对象

二、作用是什么?

    使用同一个实例对象,不在new新的,减少系统资源浪费

三、特点是什么?

    final标识的类【禁止继承】

    私有构造函数【防止类外实例化】

    私有克隆方法【禁止被克隆】

    私有静态属性【保存类的实例对象】

    公有静态函数【调用类的接口】

    以上行为的目的:防止程序重新实例化【消费新的资源】

四、应用场景

    常用的数据库操作类,每一次使用数据库裤操作类都要new一个新的对象,对于系统和内存资源浪费是巨大的,并且每new一个都要和数据库连接,那么数据库的连接数很快会用完

五、示例

<?php  
final class single{

    private $rand = 0;
    // 存放实例化的对象
    static private $obj = null;

    // 防止类外实例化
    private function __construct(){
        return $this->rand = mt_rand(1,99999);
    }


    // 调用类的接口
    static  public function usb(){
        if(!self::$obj){
            self::$obj = new single();
        }
        return self::$obj;
    }

    public function fff(){
        echo $this->rand;
    }


    // 防止用户克隆
    private function __clone(){
        echo ‘禁止克隆!‘;
    }

}

$single1 = single::usb();
$single2 = single::usb();
print_r($single1);
print_r($single2);
$single2 ->fff();
 

  

 

以上是关于PHP 单例模式的主要内容,如果未能解决你的问题,请参考以下文章

PHP设计模式之:单例模式

PHP设计模式------单例模式

设计模式之单例模式

php设计模式-单例模式

php的单例模式

php单例模式与工厂模式