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中强制下载文件的代码(解决了IE下中文文件名乱码问题)
May 09 PHP
php学习笔记之面向对象编程
Dec 29 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
Apr 08 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
Jun 19 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
Jun 19 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
Jun 25 PHP
PHP计算加权平均数的方法
Jul 16 PHP
Yii遍历行下每列数据的方法
Oct 17 PHP
php Session无效分析资料整理
Nov 29 PHP
用PHP做了一个领取优惠券活动的示例代码
Jul 05 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
Oct 15 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
Jun 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 checkbox复选框值的获取与checkbox默认值输出方法
2010/05/15 PHP
如何用php生成扭曲及旋转的验证码图片
2013/06/07 PHP
PHP中函数gzuncompress无法使用的解决方法
2017/03/02 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
2017/05/05 PHP
JS trim去空格的最佳实践
2011/10/30 Javascript
原生js和jquery中有关透明度设置的相关问题
2014/01/08 Javascript
js星星评分效果
2014/07/24 Javascript
Javascript中3种实现继承的方法和代码实例
2014/08/12 Javascript
JavaScript获取页面上被选中文字的方法技巧
2015/03/13 Javascript
简述JavaScript的正则表达式中test()方法的使用
2015/06/16 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2017/04/20 Javascript
基于JavaScript表单脚本(详解)
2017/10/18 Javascript
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
2018/03/24 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
2020/07/21 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
Python统计日志中每个IP出现次数的方法
2015/07/06 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
一文秒懂python读写csv xml json文件各种骚操作
2019/07/04 Python
Django 后台带有字典的列表数据与页面js交互实例
2020/04/03 Python
Python中zip函数如何使用
2020/06/04 Python
详解Python IO编程
2020/07/24 Python
CSS3感应鼠标的背景闪烁和图片缩放动画效果
2014/05/14 HTML / CSS
Html5无刷新修改browser Url的方法
2014/01/15 HTML / CSS
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
SQL面试题
2013/12/09 面试题
往来会计岗位职责
2013/12/19 职场文书
2014年医学生毕业自我鉴定
2014/03/26 职场文书
农村党员一句话承诺
2014/05/30 职场文书
个人诉讼委托书范本
2014/10/17 职场文书
乡镇计划生育工作汇报
2014/10/28 职场文书
兼职安全员岗位职责
2015/02/15 职场文书
2016年六一儿童节开幕词
2016/03/04 职场文书