PHP——观察者模式

观察者模式是非常有用的设计模式,事件机制,发布订阅等都是基于观察者模式实现的。
观察者模式顾名思义要有“观察者”和“被观察者”,为了约束两者的行为,又需要各自的接口(Interface)。我们来实现一个Demo:

ObserverInterface.php

ObserverA.php

ObserverB.php

SubjectInterface.php

Subject.php

observers[] = $observer;
    }

    /**
     * 发送通知
     */
    public function notify()
    {
        // 逐个通知观察者
        foreach ($this->observers as $observer) {
            $observer->response();
        }
    }
}

下面我们来模拟一下场景

add(new ObserverA());
$Subject->add(new ObserverB());
$Subject->notify();

执行结果:

观察者A已收到
Observer B has received the notify

你可能感兴趣的:(PHP——观察者模式)