设计模式的学习--单例模式

为了更愉快的装逼,开始学习php的设计模式.

特点

  1. 一个类有且只有一个实例
  2. 这个实例是由这个类本身创建的
  3. 自行向整个逻辑返回本身的实例
class Singleton{
	private static $instance;

	public $name;

	private function __construct(){//私有的构造函数,防止实例化类
	}
	//静态的工厂方法,判断实例是否存在,处理
	public  static function getInstance(){
		if(is_null(self::$instance)){
			self::$instance= new Singleton();
		}
		return self::$instance;
	}

	 public function __clone(){//防止clone
        throw new Exception("Singleton Class Can Not Be Cloned");
    }

    //测试用的方法
	public function p(){
		echo 'It is Singleton';
	}
}

$sing=Singleton::getInstance();
$sing->p();

Comments

comments powered by Disqus