美文网首页
PHP 观察者模式

PHP 观察者模式

作者: wyc0859 | 来源:发表于2019-03-09 14:27 被阅读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<br/>\n";
        $this->notify();
    }
}
class Observer1 implements Observer{
    function update($event_info = null)    {
        echo "逻辑1<br />\n";
    }
}
class Observer2 implements Observer{
    function update($event_info = null)    {
        echo "逻辑2<br />\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);
}

相关文章

  • PHP设计模式之观察者模式

    PHP设计模式之观察者模式

  • php设计模式(4) 观察者模式(附加 不听话的观察者)

    php设计模式(4) 观察者模式(附加 不听话的观察者) 概述 代码实现 目标 和 观察者(使用了 php spl...

  • PHP设计模式(5)-观察者模式

    layout: posttitle: "PHP设计模式(5)-观察者模式"date: 2016-06-06 23:...

  • PHP SPL 观察者模式

    PHP SPL模块中自带一个观察者模式,观察者模式是一个非常简单事件系统,包含两个或者更多交互的类,这个模式允许一...

  • 观察者模式

    1.观察者模式 PHP内置的类提供了对SPL的原生支持,实现如下。

  • PHP观察者模式

    1.抽象主题(Subject)角色:主题角色将所有对观察者对象的引用保存在一个集合中,每个主题可以有任意多个观察者...

  • PHP 观察者模式

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

  • 设计模式

    单例模式模式工厂模式模式策略者模式适配器模式观察者模式 单例模式 php的应用主要在于数据库应用: 一个应用中会存...

  • laravel队列、消息通知和观察者模式的理解

    推荐设计模式-PHP观察者设计模式laravel事件监听--模型事件新特性深入了解laravel消费队列的两种工作...

  • 11.9设计模式-观察者模式-详解

    设计模式-观察者模式 观察者模式详解 观察者模式在android中的实际运用 1.观察者模式详解 2.观察者模式在...

网友评论

      本文标题:PHP 观察者模式

      本文链接:https://www.haomeiwen.com/subject/xtbspqtx.html