大话设计模式之PHP篇

定义
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生改变时,会通知所有观察者对象,使他们能够自动更新自己。

大话设计模式之PHP篇

<?php
/*主题类或称为通知类*/
class Subject {
    private $_observers = array();
    
    /*注册观察者*/
    public function register($obs) {
        $this->_observers[] = $obs;
    }
    
    /*触发器,更新通知*/
    public function trigger() {
        if(!empty($this->_observers)) {
            foreach($this->_observers as $observer){
                $observer->update();
            }
        }
    }
}

/*定义观察者接口,update必须实现*/
interface Observer {
    public function update();
}

class One_Observer implements Observer {
    public function update() {
        echo 'One Is Called';
    }
}

class Two_Observer implements Observer {
    public function update() {
        echo 'Two Is Called';
    }
}

/*客户端实现*/
$sub = new Subject;
$sub->register(new One_Observer);
$sub->trigger();
$sub->register(new Two_Observer);
$sub->trigger();

观察者模式的关键对象是主题类Subject和观察者类Observer,一个Subject可以有任意数目的依赖他的观察者Observer,一旦Subject的状态发生了变化,所有的Observer都可以得到通知。Subject发出通知时并不需要知道谁是他的观察者,而任何一个观察者也不需要知道其他观察者的存在。
......真是又晦又涩...难懂的解释
待想出个WEB开发中比较常见的应用就能理解了