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 相关文章推荐
对象失去焦点时自己动提交数据的实现代码
Nov 06 PHP
php将gd生成的图片缓存到memcache的小例子
Jun 05 PHP
解析如何用php screw加密php源代码
Jun 20 PHP
分享PHP header函数使用教程
Sep 05 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
Sep 23 PHP
php switch语句多个值匹配同一代码块的实现
Mar 03 PHP
php中使用PHPExcel读写excel(xls)文件的方法
Sep 15 PHP
php递归实现无限分类的方法
Jul 28 PHP
PHP页面间传递值和保持值的方法
Aug 24 PHP
php socket通信简单实现
Nov 18 PHP
PHP实现QQ登录的开原理和实现过程
Feb 04 PHP
Ubuntu彻底删除PHP7.0的方法
Jul 27 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开发注意事项总结
2015/02/04 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
PHP实现数组的笛卡尔积运算示例
2017/12/15 PHP
PHP判断是否是微信打开,浏览器打开的方法
2018/03/14 PHP
php数组指针函数功能及用法示例
2020/02/11 PHP
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
jQuery AJAX实现调用页面后台方法和web服务定义的方法分享
2012/03/01 Javascript
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
原生js实现网页顶部自动下拉/收缩广告效果
2017/01/20 Javascript
Vuex的基本概念、项目搭建以及入坑点
2018/11/04 Javascript
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
详解Vue中的watch和computed
2020/11/09 Javascript
用Python实现一个简单的线程池
2015/04/07 Python
Python中的面向对象编程详解(下)
2015/04/13 Python
浅述python中argsort()函数的实例用法
2017/03/30 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
java中两个byte数组实现合并的示例
2018/05/09 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
Python常见MongoDB数据库操作实例总结
2018/07/24 Python
详解Appium+Python之生成html测试报告
2019/01/04 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
2019/07/25 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
Python多线程thread及模块使用实例
2020/04/28 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
2020/09/25 Python
如何使用python写截屏小工具
2020/09/29 Python
基于python爬取链家二手房信息代码示例
2020/10/21 Python
德国著名廉价网上药店:Shop-Apotheke
2017/07/23 全球购物
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
澳大利亚买卖正宗二手奢侈品交易平台:Luxe.It.Fwd
2019/10/16 全球购物
四年级数学上册教学计划
2015/01/20 职场文书
拉贝日记观后感
2015/06/05 职场文书
企业文化学习心得体会
2016/01/21 职场文书
Python批量将csv文件转化成xml文件的实例
2021/05/10 Python