observers[] = $observer; } function notify(){ foreach($this->observers as $observer){ $observer->update(); } } } interface Observer{ function update($event_info = NULL); } class Observer1 implements Observer{ function update($event_info = NULL) { // TODO: Implement update() method. echo '观察者1'; } } class Observer2 implements Observer{ function update($event_info = NULL) { // TODO: Implement update() method. echo "观察者2"; } } class Event extends EventGenerator{ function trigger(){ echo "Event\n"; $this->notify(); 逻辑1 //echo "逻辑1"; 逻辑3 //echo "逻辑2"; 逻辑3 //echo "逻辑3"; } } $event = new Event(); $event->addObserver(new Observer1()); $event->addObserver(new Observer2()); $event->trigger();