栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

php中的单例模式

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

php中的单例模式

1.单例模式的由来

类是对现实生活中一类具有共同特征的事物的抽象,通过类的实例化,产生了许多的对象,但同时也产生了大量资源的消耗(例如在连接数据库时连接数量的限制,又例如在计算机中打开资源管理器却具有唯一性),由此也产生了对类的实例化进行了限定的需求,为了保护资源的唯一性,由此产生了单例模式。

2.单例模式的定义

定义:单例模式singleton,是一种类的设计只会最多产生一个对象的设计思想。

3.单例模式的实例

a.创建一个空类 。

b.能够多次实例化类,是产生多个对象的原因,所以可以通过私有化构造方法。

";
    }
   }
?>

c.私有化构造方法使得实例化对象产生的数目为0,由此可以通过在类的内部,通过静态方法调用构造方法,然后将构造方法返回至外部。

";
    }
    public static function getInstance()
    {
      return new self();
 }
   }
  $s1=Use::getSingleton();
?>

d.通过上述的方法虽然能够实例化对象,但是同时也将构造方法的使用权限外放出去。如果想要该方法只返回一个对象,就得保证类内部有办法存着某个产生的对象,第一次产生新的,后面返回旧的。此时需要使用静态属性。

";
    }
    
    public static function getInstance()
    {  
      //判断类内部的静态属性是否存在对象
if(!(self::$object instanceof self)){   //当前保存的内容不是当前类的对象
self::$object = new self();
    }
      //返回对象给外部
return self::$object;
    }
   }
  $s1=Use::getSingleton();
?>

e.此时可以保证,通过调用静态方法只得到一个对象。但是依旧可以通过克隆,不停的实例化新的对象,所以可以将克隆私有化。

";
    }
    
    public static function getInstance()
    {  
      //判断类内部的静态属性是否存在对象
if(!(self::$object instanceof self)){   //当前保存的内容不是当前类的对象
    self::$object = new self();
}
      //返回对象给外部
return self::$object;
    }
    
    
    private function __clone(){}   
   }
  $s1=Use::getSingleton();
?>

推荐:php教程

以上就是php中的单例模式的详细内容,更多请关注考高分网其它相关文章!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/262571.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号