浅谈PHP单例模式 三私一公

浅谈PHP单例模式 三私一公

1 单利模式保证属性私有化
构造函数私有化防止外部直接使用
克隆方法私有化防止克隆
2 一个对外的公共静态方法 供外部使用
这种模式保证本类只能被实例化一次,再次被调用时返回第一次实例化的对象,可以避免大量的NEW操作,减少资源的消耗。常见的数据库实例化就是这种模式


/**
 * 
 */
class Singleton
{
    //属性私有化
	 private static $model = null;

	 //如果显式地声明构造函数,那么它的访问权限必须是 public
	 //如果设置private 那么只有本类内部可以使用 
	 //构造方法私有化
	private function __construct()
	{
		// code...
	}
	
    //禁止克隆  克隆方法私有化
	private function _clone() 
	{

	}
   //对外一个公共的静态方法 调用实例化对象
	static function getInstance()
	{
        if (empty(self::$model)) {
            self::$model = new self();
        }
        return self::$model;
	}

   public function do()
   {
      return  '我是单例模式';
   }
}

$model = Singleton::getInstance();
var_dump($model->do());

$model_new = Singleton::getInstance();

代码中两次调用返回的是同一个实例,单例模式,顾名思义就是只有一个实例。单例模式确保某一个类只有一个实例,不能重复实例,只能它自己实例化,而且向整个系统提供这个实例。

你可能感兴趣的:(后端/PHP开发,单例模式,php)