observers[] = $observer; } public function detach(Observer $observer) { for ($i = 0; $i < sizeof($this->observers); $i++) { if ($this->observers[$i] === $observer) { unset($this->observers[$i]); } } } protected function notify() { for ($i = 0; $i < sizeof($this->observers); $i++) { $this->observers[$i]->update(); } } public abstract function getState(); } ?>