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 生成WML页面方法详解
Aug 09 PHP
PHP+MySQL 手工注入语句大全 推荐
Oct 30 PHP
php class中self,parent,this的区别以及实例介绍
Apr 24 PHP
PHP实现数组递归转义的方法
Aug 28 PHP
php一维二维数组键排序方法实例总结
Nov 13 PHP
thinkphp循环结构用法实例
Nov 24 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
Mar 08 PHP
详解PHP中websocket的使用方法
Sep 15 PHP
php 使用fopen函数创建、打开文件详解及实例代码
Sep 24 PHP
php-fpm开启状态统计的方法详解
Jun 23 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
Laravel-admin之修改操作日志的方法
Sep 30 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/05/04 PHP
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
2012/09/30 PHP
PHP截断标题且兼容utf8和gb2312编码
2013/09/22 PHP
PHP超牛逼无限极分类生成树方法
2015/05/11 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
php原生数据库分页的代码实例
2019/02/18 PHP
键盘控制事件应用教程大全
2006/11/24 Javascript
对YUI扩展的Gird组件 Part-1
2007/03/10 Javascript
通过javascript的匿名函数来分析几段简单有趣的代码
2010/06/29 Javascript
jQuery :nth-child前有无空格的区别分析
2011/07/11 Javascript
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
NodeJS Web应用监听sock文件实例
2015/02/18 NodeJs
javascript简单实现滑动菜单效果的方法
2015/07/27 Javascript
老生常谈JavaScript数组的用法
2016/06/10 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
利用JS实现页面删除并重新排序功能
2016/12/09 Javascript
js数字舍入误差以及解决方法(必看篇)
2017/02/28 Javascript
node.js中express-session配置项详解
2017/05/31 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
vue实现在表格里,取每行的id的方法
2018/03/09 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
vuex存值与取值的实例
2019/11/06 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
Python中遇到的小问题及解决方法汇总
2017/01/11 Python
nginx+uwsgi+django环境搭建的方法步骤
2019/11/25 Python
Python 解决相对路径问题:&quot;No such file or directory&quot;
2020/06/05 Python
在tensorflow实现直接读取网络的参数(weight and bias)的值
2020/06/24 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
服务生自我鉴定
2014/01/22 职场文书
党员领导干部廉洁从政承诺书
2014/03/27 职场文书
干部个人对照检查材料
2014/08/25 职场文书
小学生校园广播稿
2014/09/28 职场文书
2015最新婚礼司仪主持词
2015/06/30 职场文书