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应用中使用XOR运算加密算法分享
Aug 28 PHP
基于PHP静态类的原罪详解
May 06 PHP
PHP的构造方法,析构方法和this关键字详细介绍
Oct 22 PHP
php下载excel无法打开的解决方法
Dec 24 PHP
php实现的mongodb操作类实例
Apr 03 PHP
PHP数组与对象之间使用递归实现转换的方法
Jun 24 PHP
WordPress开发中短代码的实现及相关函数使用技巧
Jan 05 PHP
thinkphp制作404跳转页的简单实现方法
Sep 22 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
Nov 14 PHP
ThinkPHP开发--使用七牛云储存
Sep 14 PHP
php单元测试phpunit入门实例教程
Nov 17 PHP
php下的原生ajax请求用法实例分析
Feb 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
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
textContent在Firefox下与innerText等效的属性
2007/05/12 Javascript
JavaScript下利用fso判断文件是否存在的代码
2010/12/11 Javascript
JavaScript prototype 使用介绍
2013/08/29 Javascript
JS文本获得焦点清除文本文字的示例代码
2014/01/13 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
2014/03/10 Javascript
深入浅析NodeJs并发异步的回调处理
2015/12/21 NodeJs
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
实现elementUI表单的全局验证的方法步骤
2019/04/29 Javascript
js实现页面多个日期时间倒计时效果
2019/06/20 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
[45:06]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第二场 11.28
2020/12/02 DOTA
python读取注册表中值的方法
2013/04/08 Python
python通过微信发送邮件实现电脑关机
2018/06/20 Python
Python中创建二维数组
2018/10/17 Python
Django Rest framework频率原理与限制
2019/07/26 Python
Python开发之基于模板匹配的信用卡数字识别功能
2020/01/13 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
2020/02/20 Python
Python3自动生成MySQL数据字典的markdown文本的实现
2020/05/07 Python
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
工商管理专业应届生求职信
2013/11/04 职场文书
质检部部长职责
2013/12/16 职场文书
4s店活动策划方案
2014/08/25 职场文书
小学生运动会广播
2015/08/19 职场文书
Python实战之实现简易的学生选课系统
2021/05/25 Python
Python中requests做接口测试的方法
2021/05/30 Python
手残删除python之后的补救方法
2021/06/26 Python
JavaScript 定时器详情
2021/11/11 Javascript
Python装饰器的练习题
2021/11/23 Python
Java异常处理try catch的基本用法
2021/12/06 Java/Android
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android