php单例模式

单例模式

单例模式


单例模式应用:
1.使用单例模式,可以避免大量new操作消耗资源
2.如果系统中需要有一个类来全局控制某些配置信息,使用单例模式可以很方便实现
3.在一次页面请求中,便于进行调试,因为所有的代码(例如数据库操作类)都集中在一个类中,可以在类中设置狗子,输出日志,从而避免var_dump,echo
单例模式(职责模式)。一个对象只负责一个特定的人物:
1.构造函数需要为private,防止外部代码使用new操作符创建对象,单例类只能被自身实例化
2.拥有一个保存类的实例的静态成员变量
3.拥有一个访问这个实例的公共的静态方法(常用getInstance()方法进行实例化单例类,通过instanceof操作符可以检测到类是否已经被实例化)
4.需要创建__clone()方法防止对象被复制

<?php 
namespace  extHelp; 
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; 
   } 
}

评论

目前评论:0   

点击加载更多评