源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

基于php设计模式中单例模式的应用分析

  • 时间:2021-07-28 08:02 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:基于php设计模式中单例模式的应用分析
[b]单例模式:简单的说,一个对象只负责一个特定的任务。[/b] [b]单例类: [/b]    1.构造函数需要标记为private,单例类不能再其他类中实例化,只能被其自身实例化     2.拥有一个保存类的实例静态成员变量     3.拥有一个访问这个实例的公共的静态方法。[常用getInstance()方法进行实例化单例类,通过instanceof操作符可以检测到此类是否已经被实例化]     注:需要创建__clone()方法防治对象被复制 [b]作用: [/b]    1.php的应用主要用于数据库,所以一个应用中会存在大量的数据库操作,使用单例模式,则可以避免大量new操作消耗的资源     2.如果系统中需要一个类来全局控制某些配置信息,那么使用单例模式可以很方便的实现。参照ZF的FrontController部分     3.在一个页面请求汇总,便于进行调试,因为所有的代码都集中在一个类中,我们可以在类中设置钩子,输出日志,从而避免到处var_dump,echo。
[u]复制代码[/u] 代码如下:
<?php class DanLi{     //静态成员变量     private static $_instance;     //私有的构造方法     private function __construct(){     }     //防止对象被克隆     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 "ok";     } } //错误:$danli = new DanLi(); $danli_clone = clone $danli; //正确:$danli = DanLi::getInstance(); $danli->test(); ?>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部