public function __construct() { $sub = new ConcreteSubject(); $ob1 = new ConcreteObserverPhone(); $ob2 = new ConcreteObserverTablet(); $ob3 = new ConcreteObserverDT(); $sub->attachObser($ob1); $sub->attachObser($ob2); $sub->attachObser($ob3); $sub->setState("decoCar"); }
public function update(SplSubject $subject) { echo 'ConcreteObserver2 state is ', $subject->getState(), '<br>'; } } /** * 具体观察者 3 * */ class ConcreteObserver3 extends bserver implements SplObserver { function __construct($state) { parent::__construct($state); } public function update(SplSubject $subject) { echo 'ConcreteObserver3 state is ', $subject->getState(), '<br>'; } } $subject = new ConcreteSubject(); $observer1 = new ConcreteObserver1(1); $observer2 = new ConcreteObserver2(2); $observer3 = new ConcreteObserver3(3); $subject->attach($observer1); $subject->attach($observer2); $subject->attach($observer3); echo 'Subject state is 1', '<br>'; $subject->setState(1); echo 'Subject state is 2', '<br>'; $subject->setState(3);