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中$美元符号与Zen Coding冲突问题解决方法分享
May 28 PHP
50个PHP程序性能优化的方法
Jun 02 PHP
Linux下PHP安装mcrypt扩展模块笔记
Sep 10 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
Feb 15 PHP
php发送http请求的常用方法分析
Nov 08 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
Jan 07 PHP
PHP中Trait及其应用详解
Feb 14 PHP
PHP获取文本框、密码域、按钮的值实例代码
Apr 19 PHP
php 读取文件夹下所有图片、文件的实例
Oct 17 PHP
PHP基于mcript扩展实现对称加密功能示例
Feb 21 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
May 27 PHP
浅谈PHP之ThinkPHP框架使用详解
Jul 21 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
PHP学习笔记之一
2011/01/17 PHP
PHP中使用unset销毁变量并内存释放问题
2012/07/05 PHP
php调用dll的实例操作动画与代码分享
2012/08/14 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
laravel使用数据库测试注意事项
2020/04/10 PHP
doctype后如何获得body.clientHeight的方法
2007/07/11 Javascript
jquery animate 动画效果使用说明
2009/11/04 Javascript
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
2015/05/13 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
2015/07/31 Javascript
JavaScript中利用构造器函数模拟类的方法
2017/02/16 Javascript
jQuery实现可拖动进度条实例代码
2017/06/21 jQuery
Vue实现web分页组件详解
2017/11/28 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
JavaScript数组方法的错误使用例子
2018/09/13 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
通过滑动翻页效果实现和移动端click事件问题
2021/01/26 Javascript
使用python实现strcmp函数功能示例
2014/03/25 Python
修复 Django migration 时遇到的问题解决
2018/06/14 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
Falsk 与 Django 过滤器的使用与区别详解
2019/06/04 Python
Python实现加密的RAR文件解压的方法(密码已知)
2020/09/11 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
2021/02/24 Python
浅谈Html5页面打开app的一些思考
2020/03/30 HTML / CSS
荷兰游戏商店:Allyouplay
2019/03/16 全球购物
俄罗斯茶和咖啡网上商店:Tea.ru
2021/01/26 全球购物
经贸日语毕业生自荐信
2013/11/03 职场文书
企业挂职心得体会
2014/09/10 职场文书
地方白酒代理协议书
2014/10/25 职场文书
体育委员竞选稿
2015/11/21 职场文书
apache基于端口创建虚拟主机的示例
2021/04/24 Servers
ICOM R71E和R72E图文对比解说
2022/04/07 无线电
SQL Server中使用表变量和临时表
2022/05/20 SQL Server