PHP中的单例模式

 

*单例模式不能通过 new 类名(); 来实例化对象

 

class Person{
	private static $interion;
	private $pop = array();
	private function __construct(){}

	public function getInterion(){
		if(empty($interion)){
			self::$interion = new Person();
		}
		return self::$interion;
	}

	public function setParam($key,$val){
		$this->pop[$key] = $val;
	}

	public function getParam($key){
		return $this->pop[$key];
	}
}

  

1、构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化;

2、拥有一个保存类的实例的静态成员变量

3、拥有一个访问这个实例的公共的静态方法(常用getInstance()方法进行实例化单例类,通过instanceof操作符可以检测到类是否已经被实例化

 

通用实例化对象的方法

 

$p = new Person();

 

  

 

单例模式下对类的操作来生成对象

$stu = Person::getInterion();
$stu->setParam("a","XY");
echo $stu->getParam("a");

  .

单例模式的例子:比如对于数据库的操作时候。

 

posted @ 2014-09-20 16:59  半颠者  阅读(1106)  评论(0编辑  收藏  举报