{ echo "'{$args}' send to UserListLogger\n"; } public function getName() { return 'UserListLogger'; } } class OtherObserver implements IObserver { public function onSendMsg($sender, $args) { echo "'{$args}' send to OtherObserver\n"; } public function getName() { return 'OtherObserver'; } } $ul = new UserList(); //被观察者 $ul->addObserver(new UserListLogger()); //增加观察者 $ul->addObserver(new OtherObserver()); //增加观察者 $ul->sendMsg("Jack"); //发送消息到观察者 $ul->removeObserver('UserListLogger'); //移除观察者 $ul->sendMsg("hello"); //发送消息到观察者