php的单例模式

单例模式:指的是一个对象的模式,指一个类只能创建一个对象。

既然限制一个类只能创建一个对象,就是说要关闭其他创建对象的途径。

所以实现单例,必须满足一下条件:

1.不让克隆(私有克隆方法)

2.不让创建对象(私有构造方法,不能在类外部使用new关键字创建对象)

3.在类中创建对象(静态方法)

4.判断对象是否存在,如果存在返回原对象,否则创建新对象

使用单例模式好处在于可以节省资源,比如Db类设计,比如window系统常见的资源管理器。

 

 

<?php
class Single{
//定义一个属性保存对象
    private static $single; 
    
    //私有构造方法
    private function __construct($name){
        $this->$single = $name;
    }
    
    //私有化克隆方法
    private function __clone(){
    }
    
    //静态方法:让类进入到类的内部进行实例化得到对象
     public static function getInstance($name){
         //判断对象是否存在,如果存在返回原对象,否则创建新对象
         if(!self::$single){
              self::$single = new Single($name);
         }
         return self::$single;
     }
}
$single = Single::getInstance('libai');
var_dump($single);$single = Single::getInstance('dufu');
var_dump($single);

 

posted @ 2017-06-20 19:29  心悲动我神  阅读(131)  评论(0编辑  收藏  举报