Example #1
0
 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");
 }
Example #2
0
    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);