一、什么是观察者模式
当一个对象状态发生改变时,依赖它的对象会全部收到通知,并自动更新
二、观察者模式作用
实现低耦合,非侵入式的通知与更新机制,能更好的维护代码
三、具体实现
// 基类
abstract class EventGenerator
{
private $observers = [];
public function addObserver(Observer $observer) // 添加观察者
{
$this->observers[] = $observer
}
public function notify() // 发送通知
{
foreach($this->observers as $observer)
{
$observer->update();
}
}
}
// 观察者接口
interface Observer
{
public function update($event = null);
}
class Event extends EventGenerator
{
public function trigger()
{
echo "event";
$this->notify();
}
}
// 观察者1
class Observer1 implements Observer
{
public function update($enent = null)
{
echo "逻辑1";
}
}
// 观察者2
class Observer2 implements Observer
{
public function update($enent = null)
{
echo "逻辑2";
}
}
// 业务调用
$event = new Event();
$event->addObserver(new Observer1);
$event->addObserver(new Observer2);
$event->trigger();

本文介绍了观察者模式的基本概念,展示了如何通过PHP实现该模式。观察者模式允许对象在其状态发生变化时通知所有依赖的对象进行更新,从而实现低耦合的代码结构。

被折叠的 条评论
为什么被折叠?



