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+mysql保存和输出文件
Oct 09 PHP
一个用mysql_odbc和php写的serach数据库程序
Oct 09 PHP
PHP入门
Oct 09 PHP
php截取中文字符串不乱码的方法
Dec 25 PHP
codeigniter使用技巧批量插入数据实例方法分享
Dec 31 PHP
PHP mkdir()无写权限的问题解决方法
Jun 19 PHP
标准PHP的AES加密算法类
Mar 12 PHP
php将字符串全部转换成大写或者小写的方法
Mar 17 PHP
smarty模板引擎基础知识入门
Mar 30 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
curl和libcurl的区别简介
Jul 01 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
Mar 09 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实现文件上传二法
2006/10/09 PHP
PHP If Else(elsefi) 语句
2013/04/07 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
2018/12/07 PHP
Gambit vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
Div Select挡住的解决办法
2008/08/07 Javascript
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
2016/08/05 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
2016/08/27 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
Vue点击切换颜色的方法
2018/09/13 Javascript
jqGrid表格底部汇总、合计行footerrow处理
2019/08/21 Javascript
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
Python中的多行注释文档编写风格汇总
2016/06/16 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
2017/11/15 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
美国现代家具和家居商店:Apt2B
2016/08/29 全球购物
俄罗斯最大的消费电子连锁零售商:Mvideo
2017/06/25 全球购物
德国滑雪和户外用品网上商店:XSPO
2019/10/30 全球购物
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
铭立家具面试题
2012/12/06 面试题
物流仓储计划书
2014/01/10 职场文书
实习生自我评价
2014/01/18 职场文书
公司承诺书怎么写
2014/05/24 职场文书
女生节标语
2014/06/26 职场文书
我们的节日春节活动方案
2014/08/22 职场文书
向国旗敬礼活动小结
2014/09/27 职场文书
军训后的感想
2015/08/07 职场文书
党员公开承诺书2016
2016/03/24 职场文书
Python进行区间取值案例讲解
2021/08/02 Python
Java实现HTML转为Word的示例代码
2022/06/28 Java/Android