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