// 观察者模式
// 1.抽象事件发生类
abstract class EventGenerator
{
// 观察者 对象 集合
private $observers = array();
// add observers
function addObserver(Observer $observer)
{
$this->observers[] = $observer;
}
// 对 所有 观察者 进行 事件 通知
function notify()
{
// 对每个观察者 逐个去更新
foreach( $this->observers as $observer )
{
$observer->exec();
}
}
}
// 2. 声明具体事件类
class Event extends EventGenerator
{
function trigger()
{
echo 'Event';
$this->notify();
}
}
// 3. 声明 一个 观察者 接口
interface observer
{
function exec ( $event_info = null );
}
// 4. 声明 观察者类->多个`这里写代码片`
class Observer1 implements observer
{
function exec( $event_info = null )
{
echo '处理逻辑1';
}
}
class Observer2 implements observer
{
function exec( $event_info = null )
{
echo '处理逻辑2';
}
}
$event = new Event;
$event->addObserver( new Observer1 );
$event->addObserver( new Observer2 );
$event->trigger();
php 设计模式之观察者模式
最新推荐文章于 2024-09-04 00:40:25 发布