PHP实现的观察者模式实例


Posted in PHP onJune 21, 2017

本文实例讲述了PHP实现的观察者模式。分享给大家供大家参考,具体如下:

<?php
  //定义观察者调用接口
  class transfer{
    protected $_observers = array();
    //注册对象
    public function register($sub){
      $this->_observers[] = $sub;
    }
    //外部统一调用
    public function trigger(){
      if(!empty($this->_observers)){
        foreach($this->_observers as $observer){
          $observer->update();
        }
      }
    }
  }
  //观察者接口
  interface obserable{
    public function update();
  }
  //实现观察者
  class listen implements obserable{
    public function update(){
      echo 'now first time you need to do listen<br/>';
    }
  }
  class read implements obserable{
    public function update(){
      echo 'now first time you need to read<br/>';
    }
  }
  class speak implements obserable{
    public function update(){
      echo 'now first time you need to speak<br/>';
    }
  }
  class write implements obserable{
    public function update(){
      echo 'now first time you need to write<br/>';
    }
  }
  $transfer = new transfer();
  $transfer->register(new listen());
  $transfer->register(new read());
  $transfer->register(new speak());
  $transfer->register(new write());
  $transfer->trigger();

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

PHP 相关文章推荐
让PHP以ROOT权限执行系统命令的方法
Feb 10 PHP
浅析PKI加密解密 OpenSSL
Jul 01 PHP
Drupal读取Excel并导入数据库实例
Mar 02 PHP
基于递归实现的php树形菜单代码
Nov 19 PHP
php中PDO方式实现数据库的增删改查
May 17 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
Jan 04 PHP
基于PHP生成简单的验证码
Jun 01 PHP
浅谈php中urlencode与rawurlencode的区别
Sep 05 PHP
PHP实现的简单在线计算器功能示例
Aug 02 PHP
PDO::_construct讲解
Jan 27 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
Mar 07 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
Dec 18 PHP
PHP构造二叉树算法示例
Jun 21 #PHP
ThinkPHP删除栏目(实现批量删除栏目)
Jun 21 #PHP
php基于SQLite实现的分页功能示例
Jun 21 #PHP
PHP面向对象之领域模型+数据映射器实例(分析)
Jun 21 #PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
Jun 21 #PHP
老生常谈PHP面向对象之标识映射
Jun 21 #PHP
PHP封装的PDO数据库操作类实例
Jun 21 #PHP
You might like
调整优化您的LAMP应用程序的5种简单方法
2011/06/26 PHP
PHP延迟静态绑定示例分享
2014/06/22 PHP
php使用正则表达式进行字符串搜索的方法
2015/03/23 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
Thinkphp整合微信支付功能
2016/12/14 PHP
PHP生成随机密码4种方法及性能对比
2020/12/11 PHP
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
异步加载script的代码
2011/01/12 Javascript
js三种排序算法分享
2012/08/16 Javascript
jquery中选择块并改变属性值的方法
2013/07/31 Javascript
jquery遍历checkbox的注意事项说明
2014/02/21 Javascript
node.js中的http.response.writeHead方法使用说明
2014/12/14 Javascript
javascript设计模式之中介者模式Mediator
2014/12/30 Javascript
$.extend 的一个小问题
2015/06/18 Javascript
javascript简单实现等比例缩小图片的方法
2016/07/27 Javascript
js实现开启密码大写提示
2016/12/21 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
详解如何在vue项目中引入elementUI组件
2018/02/11 Javascript
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
Vue实现星级评价效果实例详解
2019/12/30 Javascript
[04:48]DOTA2亚洲邀请赛林书豪为VGJ加油
2017/04/01 DOTA
利用Python实现原创工具的Logo与Help
2018/12/03 Python
分享Python切分字符串的一个不错方法
2018/12/14 Python
Python处理时间日期坐标轴过程详解
2019/06/25 Python
python绘制彩虹图
2019/12/16 Python
基于numpy中的expand_dims函数用法
2019/12/18 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
浅谈CSS3中的变形功能-transform功能
2017/12/27 HTML / CSS
突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
2013/01/31 HTML / CSS
母亲节演讲稿范文
2014/01/02 职场文书
销售内勤岗位职责
2014/04/15 职场文书
运动会入场口号
2014/06/07 职场文书
pytorch fine-tune 预训练的模型操作
2021/06/03 Python
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL