码迷,mamicode.com
首页 > Web开发 > 详细

PHP 单例模式

时间:2018-08-12 10:30:28      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:nal   func   this   自动   obj   print   内存   特点   echo   

一、什么是单例模式?

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

二、作用是什么?

    使用同一个实例对象,不在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 单例模式

标签:nal   func   this   自动   obj   print   内存   特点   echo   

原文地址:https://www.cnblogs.com/jxkshu/p/9461849.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!