Example #1
0
{
    /**
     * 观察者的名称
     * @var <type>
     */
    private $_name;
    public function __construct($name)
    {
        $this->_name = $name;
    }
    /**
     * 更新方法
     */
    public function update()
    {
        echo 'Observer', $this->_name, ' has notified.<br />';
    }
}
//实例化类:
$subject = new ConcreteSubject();
/* 添加第一个观察者 */
$observer1 = new ConcreteObserver('Martin');
$observer2 = new ConcreteObserver('phppan');
$subject->attach($observer1);
//添加第一个观察者
$subject->attach($observer2);
//添加第二个观察者
$subject->detach($observer1);
//删除第一个观察者
$subject->notifyObservers();
Example #2
0
 /**
  * Main program.
  */
 public static function main()
 {
     $subject = new ConcreteSubject();
     /* 添加第一个观察者 */
     $observer1 = new ConcreteObserver("Martin");
     $subject->attach($observer1);
     echo "\nThe First notify:\n";
     $subject->notifyObservers();
     /* 添加第二个观察者 */
     $observer2 = new ConcreteObserver("phppan");
     $subject->attach($observer2);
     echo "\nThe Second notify:\n";
     $subject->notifyObservers();
     /* 删除第一个观察者 */
     $subject->detach($observer1);
     echo "\nThe Third notify:\n";
     $subject->notifyObservers();
 }