觀察者模式
<?php
//定義觀察者調用接口
class transfer{
protected $_observers = array();
//注冊對象
public function register($sub){
$this->_observers[] = $sub;
}
//外部統一調用
public function trigger(){
if(!empty($this->_observers)){
foreach($this->_observers as $observer){
$observer->update();
}
}
}
}
//觀察者接口
interface obserable{
public function update();
}
//實現觀察者
class listen implements obserable{
public function update(){
echo 'now first time you need to do listen<br/>';
}
}
class read implements obserable{
public function update(){
echo 'now first time you need to read<br/>';
}
}
class speak implements obserable{
public function update(){
echo 'now first time you need to speak<br/>';
}
}
class write implements obserable{
public function update(){
echo 'now first time you need to write<br/>';
}
}
$transfer = new transfer();
$transfer->register(new listen());
$transfer->register(new read());
$transfer->register(new speak());
$transfer->register(new write());
$transfer->trigger();