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
Ajax PHP分页演示
Jan 02 PHP
解析curl提交GET,POST,Cookie的简单方法
Jun 29 PHP
php session_start()出错原因分析及解决方法
Oct 28 PHP
php获取根域名方法汇总
Oct 28 PHP
php简单socket服务器客户端代码实例
May 18 PHP
php利用header函数下载各种文件
Aug 24 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
Oct 18 PHP
PHP实现添加购物车功能
Mar 06 PHP
完美的php分页类
Oct 24 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
Jan 23 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 工厂模式使用方法
2010/05/18 PHP
php检测图片木马多进制编程实践
2013/04/11 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
PHP类中的魔术方法(Magic Method)简明总结
2014/07/08 PHP
PHP实现的比较完善的购物车类
2014/12/02 PHP
PHP发送短信代码分享
2015/08/11 PHP
CI(CodeIgniter)框架视图中加载视图的方法
2017/03/24 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
UI Events 用户界面事件
2012/06/27 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
js history对象简单实现返回和前进
2013/10/30 Javascript
从数组中随机取x条不重复数据的JS代码
2013/12/24 Javascript
jQuery中noconflict函数的实现原理分解
2015/02/03 Javascript
浅析AngularJS Filter用法
2015/12/28 Javascript
Node.js实用代码段之获取Buffer对象字节长度
2016/03/17 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
简单实现jQuery多选框功能
2017/01/09 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
深入Node TCP模块的理解
2019/03/13 Javascript
详解iview的checkbox多选框全选时校验问题
2019/06/10 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
python中实现指定时间调用函数示例代码
2017/09/08 Python
python如何进入交互模式
2020/07/06 Python
美国网上鞋城:Shoeline.com
2016/11/17 全球购物
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
美国户外服装和装备购物网站:Outland USA
2020/03/22 全球购物
质量工程师岗位职责
2013/11/16 职场文书
《广玉兰》教学反思
2014/04/14 职场文书
nginx服务器的下载安装与使用详解
2021/08/02 Servers