刚刚研究完观察者设计模式,yii2随处用到的东西,记录竟总结一下,可能印象会更深一些
/** * 观察者模式 */ class Father{ private $_observers = array(); public function register($sub){ /* 注册观察者 */ $this->_observers[] = $sub; } public function trigger(){ /* 外部统一访问 */ if(!empty($this->_observers)){ foreach($this->_observers as $observer){ $observer->update(); } } } } /** * 观察者要实现的接口 */ interface Observerable{ public function update(); } //实际用到时 class Subscriber implements Observerable{ public function update(){ echo ‘observers test‘; } } /** * 之后的任何类,只要继承Father 就可以使用观察者模式 */ class sun extends Father{ } $test = new sun; $test->register(new Subscriber); $test->trigger();
时间: 2024-10-10 14:38:05