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();
 

  

 

posted @ 2018-08-12 01:41  IT树  阅读(221)  评论(0编辑  收藏  举报