php观察者模式怎么用,PHP 观察者模式

短命女 2022-11-17 13:57 229阅读 0赞

观察者模式,当一个对象状态发送改变时,依赖它的对象全部会收到通知,并自动更新。观察者模式实现了低耦合,非侵入式的通知与更新机制

*** index.php ***

define(‘BASEDIR’,__DIR__);

include BASEDIR.’/Common/Loader.php’;

spl_autoload_register(‘\\Common\\Loader::autoload’);

use Server\EventGenerator;

use Server\Observer;

class Event extends EventGenerator{

function trigger() {

echo “start
\n”;

$this->notify();

}

}

class Observer1 implements Observer{

function update($event_info = null) {

echo “逻辑1
\n”;

}

}

class Observer2 implements Observer{

function update($event_info = null) {

echo “逻辑2
\n”;

}

}

$event = new Event;

$event->addObserver(new Observer1); //只需按接口新增观察者即可,不用修改原程序逻辑

$event->addObserver(new Observer2);

$event->trigger(); //start 逻辑1 逻辑2

*** EventGenerator.php ***

namespace Server;

abstract class EventGenerator {

private $observers = array();

//参数加定义,这里表示 必须是Observer接口的对象

function addObserver(Observer $observer) {

$this->observers[] = $observer;

}

function notify() {

foreach($this->observers as $observer) {

$observer->update();

}

}

}

*** Observer.php ***

namespace Server;

interface Observer{

function update($event_info = null);

}

发表评论

表情:
评论列表 (有 0 条评论,229人围观)

还没有评论,来说两句吧...

相关阅读

    相关 PHP 观察模式

    1:观察者模式(Observer),当一个对象状态发生变化时,依赖它的对象全部会收到通知,并自动更新。  2:场景:一个事件发生后,要执行一连串更新操作。传统的编

    相关 php设计模式(三)-观察模式

    创建一个插件系统。通过这种方式,公司可以为了收益而继续开发自定义的专有软件,同时鼓励其他团体的成员借助该途径提供更多的功能性。由于只是插件系统,因此终端用户能够决定希望在核心软

    相关 观察模式-php

    观察者模式:当你的某个功能在后期可能添加很多不太相干的功能时,可以考虑使用观察者模式, 如一个用户登录类,后期可能要求,记录登录用户日志,短信提醒,邮件提醒等功能.个人更愿意

    相关 php观察模式

    观察者模式(Observer),当一个对象的状态发生改变时,依赖他的对象会全部收到通知,并自动更新。 一个事件发生后,要执行一连串更新操作.传统的编程方式,就是在事件的代码之