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调用数据库的存贮过程
Oct 09 PHP
让你同时上传 1000 个文件 (二)
Oct 09 PHP
php实现的仿阿里巴巴实现同类产品翻页
Dec 11 PHP
PHP抽象类 介绍
Jun 13 PHP
PHP中替换键名的简易方法示例详解
Jan 07 PHP
dedecms中使用php语句指南
Nov 13 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
Yii2隐藏frontend/web和backend/web的方法
Dec 12 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
Nov 05 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
Jan 13 PHP
PHP PDOStatement::getAttribute讲解
Feb 01 PHP
PHP高并发和大流量解决方案整理
Dec 24 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文件上传类分享
2016/05/15 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
PHP实现上传图片到数据库并显示输出的方法
2018/05/31 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
javascript 三种编解码方式
2010/02/01 Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
jquery实现定时自动轮播特效
2015/12/10 Javascript
js关于getImageData跨域问题的解决方法
2016/10/14 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
D3.js实现简洁实用的动态仪表盘的示例
2018/04/04 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
其实你可以少写点if else与switch(推荐)
2019/01/10 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
在vue中使用jsonp进行跨域请求接口操作
2020/10/29 Javascript
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
Pandas GroupBy对象 索引与迭代方法
2018/11/16 Python
python使用celery实现异步任务执行的例子
2019/08/28 Python
520使用Python实现“我爱你”表白
2020/05/20 Python
印度最大的酒店品牌网络:OYO Rooms
2016/07/24 全球购物
东方红海科技面试题软件测试方面
2012/02/08 面试题
老教师工作总结的自我评价
2013/09/27 职场文书
实习单位推荐信范文
2013/11/27 职场文书
行政专员岗位职责说明书
2014/07/30 职场文书
团组织推优材料
2014/12/29 职场文书
乌镇导游词
2015/02/02 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
2016年春季运动会通讯稿
2015/11/25 职场文书
2016感恩父亲节主题广播稿
2015/12/18 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
中学教代会开幕词
2016/03/04 职场文书
创业项目大全(适合在家创业的项目)
2019/08/15 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
OpenFeign实现远程调用
2022/08/14 Java/Android