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

php的单例模式

时间:2017-06-20 20:15:18      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:ons   设计   资源管理器   实例化   构造   one   new   限制   private   

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

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

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

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

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

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

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

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

 

 

<?php
class Single{
//定义一个属性保存对象
    private static $single; 
    
    //私有构造方法
    private function __construct($name){
        $this->name = $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);

 

php的单例模式

标签:ons   设计   资源管理器   实例化   构造   one   new   限制   private   

原文地址:http://www.cnblogs.com/lzy007/p/7055924.html

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