php设计模式之单例模式实例分析__第1页
php设计模式之单例模式实例分析__第2页
php设计模式之单例模式实例分析__第3页
php设计模式之单例模式实例分析__第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、php设计模式之单例模式实例分析_ 这篇文章主要介绍了php设计模式之单例模式,实例分析了单例模式的原理与相关用法技巧,具有肯定参考借鉴价值,需要的伴侣可以参考下 本文实例讲解并描述了php设计模式之单例模式。分享给大家供大家参考。具体分析如下: 单例模式(职责模式): 简洁的说,一个对象(在学习设计模式之前,需要比较了解面对对象思想)只负责一个特定的任务; 单例类: 1、构造函数需要标记为private(访问掌握:防止外部代码用法new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化; 2、拥有一个保存类的实例的静态成员变量 3、拥有一个访问这个实例的公共的静态方法(常用ge

2、tInstance()方法进行实例化单例类,通过instanceof操作符可以检测到类是否已经被实例化) 另外,需要创建_clone()方法防止对象被复制(克隆) 为什么要用法PHP单例模式? 1、php的应用主要在于数据库应用, 所以一个应用中会存在大量的数据库操作, 用法单例模式, 则可以避开大量的new 操作消耗的资源。 2、假如系统中需要有一个类来全局掌握某些配置信息, 那么用法单例模式可以很便利的实现. 这个可以参看ZF的FrontController部分。 3、在一次页面恳求中, 便于进行调试, 由于全部的代码(例如数据库操作类db)都集中在一个类中, 我们可以在类中设置钩子, 输

3、出日志,从而避开处处var_dump, echo。 代码如下: ?php /1* * 设计模式之单例模式 * $_instance必需声明为静态的私有变量 * 构造函数和析构函数必需声明为私有,防止外部程序new * 类从而失去单例模式的意义 * getInstance()方法必需设置为公有的,必需调用此方法 * 以返回实例的一个引用 * :操作符只能访问静态变量和静态函数 * new对象都会消耗内存 * 用法场景:最常用的地方是数据库连接。 * 用法单例模式生成一个对象后, * 该对象可以被其它众多对象所用法。 */ class Danli /保存类实例的静态成员变量 private sta

4、tic $_instance; /private标记的构造方法 private function _construct() echo This is a Constructed method; /创建_clone方法防止对象被复制克隆 public function _clone() trigger_error(Clone is not allow!,E_USER_ERROR); /单例方法,用于访问实例的公共的静态方法 public static function getInstance() if(!(self:$_instance instanceof self) self:$_instance = new self; return self:$_instance; public function test() echo 调用方法胜利; /用new实例化private标记构造函数的类会报错 /$danli = new Danli(); /正确方法,用双冒号:操作符访问静态方法猎取实例 $danli = Danli:getInstance(); $danli-test(); /复制(克隆)对象将导致一个E_USER

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论