'; } } /** * 删除观察者 * @param $object */ public function delete($object) { if (in_array($object,$this->observers)) { $index = array_search($object,$this->observers); unset($this->observers[$index]); } } /** * 通知所有观察者 */ public function notify() { foreach ($this->observers as $val) { $val->update(); } } /** * 被观察者自己的业务 */ public function printname() { echo 'i have been observing
'; }} $object = new user(); $object->attach(new sendemail()); //注册观察者1 $object->attach(new savename()); //注册观察者2 $object->printname(); //被观察者自己的业务 $object->notify(); //通知所有的观察者
