首页 > 作文

PHP观察者模式定义与用法实例分析

更新时间:2023-04-07 11:27:01 阅读: 评论:0

本文实例讲述了php观察者模式定义与用法。分享给大家供大家参考,具体如下:

我理解的观察者模式就是,当我们触发一个事件的时候,想要把这个操作告诉给我想要告诉的对象,让他们都执行这个操作,就是将他们绑定到这个事件下。

1.定义一个基类(用于添加观察者也就是我想要通知的对象,还有通知观察者)

eventgenerator.php

<?phpabstract class eventgenerator{  //存储观察者,因为可以有多个要通知的对象,所以是一个数组  private $obrvers = array();  //添加观察者,也就是我想要通知的对象  public function addobrver($obrver)  {    $this->obrvers[] = $obrver;  }  //通知观察者  public function notify()  {    //取出所有的对象去执行操作    for长笑话each($this->obrvers as $obrver)    {      //这里我写一个update方法,这里就要求我所有的通知对象必须要有update操作,所以一会我会定义一个借口,让所有的观察者强制实现这个方法      $obrver->update();    }  }}?>

定义接口文件,让所有观察者实现update方法obrver.php

<?phpinterface obrver{  function updat咏物言志诗e();}?>

定义吃方便面的危害实现观察者模式的文件event.php

<?phpheader('content-type:text/html;chart=utf-8');define('badir', __dir___);require 'config.php';spl_autoload_register('config::autoload');//定义事件类继承基类class event extends eventgenerator{  //当触发这个事件的时候通知所有的观察者  public function trigger()  {    echo '我要开始更新了啊!<br/>\n';    //基类的通知方法    $this->notify();  }}//添加观察者1class obrver1 implements obrver{  public function update()  {    echo '我是观察者1,我收到你的通知了!我要干我该干的了!<br/>\n';  }}//添加观察者2class obrver2 implements obrver{  public function update()  {    echo '我是观察者2,我收到你的通知了!我要干我该干的了!<br/>\n';  }}//下面就要开始测试了!$event = new event();//添加观察者到这个事件里$event->addobrver(new obrver1);$event->addobrver(new ob北京游玩rver2);//执行trigger操作$event->trigger();//这时候就会显示!//我要开始更新了啊心情短语!//我是观察者1,我收到你的通知了!我要干我该干的了!//我是观察者2,我收到你的通知了!我要干我该干的了!?>

更多关于php相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《php数组(array)操作技巧大全》、《php基本语法入门教程》、《php运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家php程序设计有所帮助。

本文发布于:2023-04-07 11:26:59,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/6e303d7de313ae44ff3622b32ab6b20c.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:PHP观察者模式定义与用法实例分析.doc

本文 PDF 下载地址:PHP观察者模式定义与用法实例分析.pdf

标签:观察者   我是   通知   定义
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图