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 相关文章推荐
简单PHP上传图片、删除图片实现代码
May 12 PHP
一些php技巧与注意事项分析
Feb 03 PHP
PHP 如何利用phpexcel导入数据库
Aug 24 PHP
yii框架通过控制台命令创建定时任务示例
Apr 30 PHP
PHP mkdir()无写权限的问题解决方法
Jun 19 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
Apr 15 PHP
php文件下载处理方法分析
Apr 22 PHP
PHP实现的自定义数组排序函数与排序类示例
Nov 18 PHP
关于PHP中协程和阻塞的一些理解与思考
Aug 11 PHP
thinkPHP5框架分页样式类完整示例
Sep 01 PHP
asp函数split()对应php函数explode()
Feb 27 PHP
PHP数组访问常用方法解析
Sep 05 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
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
PHP Directory 函数的详解
2013/03/07 PHP
PHP实现获取图片颜色值的方法
2014/07/11 PHP
php中 ob_start等函数截取标准输出的方法
2015/06/22 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
Vue 父子组件、组件间通信
2017/03/08 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
python从入门到精通(DAY 1)
2015/12/20 Python
详解Python import方法引入模块的实例
2017/08/02 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
对Python函数设计规范详解
2019/07/19 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
ipad上运行python的方法步骤
2019/10/12 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
Python安装OpenCV的示例代码
2020/03/05 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
基于Python实现天天酷跑功能
2021/01/06 Python
亚洲独特体验旅游专家:eOasia
2018/08/15 全球购物
党员个人思想汇报
2013/12/28 职场文书
工程班组长岗位职责
2013/12/30 职场文书
最经典的大学生职业生涯规划范文
2014/03/05 职场文书
幼儿园学前班幼儿评语
2014/12/29 职场文书
创先争优活动个人总结
2015/03/04 职场文书
2016七夕情人节寄语
2015/12/04 职场文书
《百分数的认识》教学反思
2016/02/19 职场文书
一个成功的互联网创业项目,必须满足这些要求
2019/08/23 职场文书
Python图片验证码降噪和8邻域降噪
2021/08/30 Python
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS
十大公认最好看的动漫:《咒术回战》在榜,《钢之炼金术师》第一
2022/03/18 日漫
利用Python多线程实现图片下载器
2022/03/25 Python
利用Redis实现点赞功能的示例代码
2022/06/28 Redis