php适配器模式简单应用示例


Posted in PHP onOctober 23, 2019

本文实例讲述了php适配器模式简单应用。分享给大家供大家参考,具体如下:

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。

这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。

示例:

//假设使用php开发了一个天气接口
class Weather{
  public static function show(){
    $info = array(
      'temperature' => '25°C',
      'wind' => '西北风3~4级',
      'weather' => '晴',
      'PM2.5' => 60
    );
    return serialize($info);
  }
}
//PHP客户端调用
$msg = Weather::show();
$msg_arr = unserialize($msg);
echo $msg_arr['weather'];
//这时,如果java、python也要来调用天气接口,
//但是不识别串行化后的字符串,但是又不能修改旧接口和旧php的调用
//这时候可以用一个新的类继承,也就是适配器模式,来修改返回的数据格式为json
class WeatherAdapter extends Weather{
  public static function show(){
    $info = parent::show();
    $info_arr = unserialize($info);
    return json_encode($info_arr);
  }
} 
//java、python就可以使用返回的json进行使用
$msg = WeatherAdapter::show();

运行结果:

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
Discuz板块横排显示图片的实现方法
May 28 PHP
PHP 身份证号验证函数
May 07 PHP
使用JSON实现数据的跨域传输的php代码
Dec 20 PHP
php pki加密技术(openssl)详解
Jul 01 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
Jan 21 PHP
PHP面向对象之后期静态绑定功能介绍
May 18 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
Dec 29 PHP
简单PHP会话(session)说明介绍
Aug 21 PHP
PHP输出多个元素的排列或组合的方法
Mar 14 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
Aug 27 PHP
PHP实现简单注册登录系统
Dec 28 PHP
Laravel 自定命令以及生成文件的例子
Oct 23 #PHP
laravel 创建命令行命令的图文教程
Oct 23 #PHP
php桥接模式应用案例分析
Oct 23 #PHP
浅谈laravel框架与thinkPHP框架的区别
Oct 23 #PHP
Laravel 解决composer相关操作提示php相关异常的问题
Oct 23 #PHP
基于laravel缓冲cache的用法详解
Oct 23 #PHP
PHP实现简单登录界面
Oct 23 #PHP
You might like
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
php在linux下检测mysql同步状态的方法
2015/01/15 PHP
PHP中CheckBox多选框上传失败的代码写法
2017/02/13 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
PHP实现一维数组与二维数组去重功能示例
2018/05/24 PHP
js文字滚动停顿效果代码
2008/06/28 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
JS动态获取当前时间,并写到特定的区域
2013/05/03 Javascript
jquery控制select的text/value值为选中状态
2014/06/03 Javascript
触屏中的JavaScript事件分析
2015/02/06 Javascript
JavaScript中removeChild 方法开发示例代码
2016/08/15 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
javascript定时器取消定时器及优化方法
2017/07/08 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
JS中移除非数字最多保留一位小数
2018/05/09 Javascript
解决koa2 ctx.render is not a function报错问题
2018/08/07 Javascript
vue最简单的前后端交互示例详解
2018/10/11 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
python绘制评估优化算法性能的测试函数
2019/06/25 Python
python3安装OCR识别库tesserocr过程图解
2020/04/02 Python
Pycharm如何导入python文件及解决报错问题
2020/05/10 Python
利用python批量爬取百度任意类别的图片的实现方法
2020/10/07 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
2020/12/09 Python
SKECHERS斯凯奇中国官网:来自美国的运动休闲品牌
2018/11/14 全球购物
Linux机考试题
2015/10/16 面试题
英语商务邀请函范文
2014/01/16 职场文书
会计电算化个人求职信范文
2014/01/24 职场文书
经典婚礼主持词
2014/03/13 职场文书
总账会计岗位职责
2014/03/13 职场文书
2015大学迎新标语
2015/07/16 职场文书
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python