观察者模式
观察者模式
<?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();