<?php
/** * 观察者模式 *
* @author: Mac * @date: 2012/02/22
*
*/
class Paper{
/* 主题 */
private $_observers = array();
public function register($obs){ /* 注册观察者 */
$this->_observers[] = $obs;
}
public function trigger(){ /* 外部统一访问 */
//print_r($this->_observers);
if(!empty($this->_observers)){
foreach($this->_observers as $observer){
$observer->update();
}
}
}
}
/** * 观察者要实现的接口 */
/*
* 有其他的观察者只要实现obs接口 就不需要更改被观察者里$obs->update();
* 具体实现看观察者的反应
*/
interface Observerable{
public function update();
}
class Subscriber implements Observerable{
public function update(){
echo "Callback\n";
}
}
/* 测试 */
$paper = new Paper();
$paper->register(new Subscriber());
//$paper->register(new Subscriber1());
//$paper->register(new Subscriber2());
$paper->trigger();
/** * 观察者模式 *
* @author: Mac * @date: 2012/02/22
*
*/
class Paper{
/* 主题 */
private $_observers = array();
public function register($obs){ /* 注册观察者 */
$this->_observers[] = $obs;
}
public function trigger(){ /* 外部统一访问 */
//print_r($this->_observers);
if(!empty($this->_observers)){
foreach($this->_observers as $observer){
$observer->update();
}
}
}
}
/** * 观察者要实现的接口 */
/*
* 有其他的观察者只要实现obs接口 就不需要更改被观察者里$obs->update();
* 具体实现看观察者的反应
*/
interface Observerable{
public function update();
}
class Subscriber implements Observerable{
public function update(){
echo "Callback\n";
}
}
/* 测试 */
$paper = new Paper();
$paper->register(new Subscriber());
//$paper->register(new Subscriber1());
//$paper->register(new Subscriber2());
$paper->trigger();