} public abstract function Update(); } /** * 观察者 */ class StockObserver extends Observer { public function __construct($name, $sub) { parent::__construct($name, $sub); } public function Update() { echo $this->_Sub->_action . $this->_UserName . " 你赶快跑..."; } } $huhansan = new Boss(); //被观察者 $gongshil = new StockObserver("三毛", $huhansan); //初始化观察者 $huhansan->Attach($gongshil); //添加一个观察者 $huhansan->Attach($gongshil); //添加一个相同的观察者 $huhansan->Detach($gongshil); //踢出基中一个观察者 $huhansan->SubjectState("警察来了"); //达到满足的条件 $huhansan->Notify(); //通过所有有效的观察者