<?php
//适配器模式
//服务器端代码
class tianqi{
public static function show(){
$today= array('tep' =>28 ,'wind'=> 7,'sun'=>'sunny');
return serialize($today);
}
}
//增加一个适配器,转换为json格式的数据
class AdapterTianqi extends tianqi{
public static function show(){
$today=parent::show();
$today=unserialize($today);
$today=json_encode($today);
return $today;
}
}
//客户端调用
$tq=unserialize(tianqi::show());
echo '温度:',$tq['tep'],'<br>';
echo '风力:',$tq['wind'],'<br>';
echo 'sun:',$tq['sun'],'<br>';
//来了一批手机上的java客户端,不认识php的串行化后的字符串,怎么办?
$tq=AdapterTianqi::show();
$tq=json_decode($tq); echo "温度:",$tq->tep,'<br>';
echo "风力:",$tq->wind,'<br>';
echo "sun:",$tq->sun,'<br>'; ?>

php适配器设计模式的更多相关文章

  1. Java适配器设计模式

    适配器设计模式,一个接口首先被一个抽象类先实现(此抽象类通常称为适配器类),并在此抽象类中实现若干方法(但是这个抽象类中的方法体是空的),则以后的子类直接继承此抽象类,就可以有选择地覆写所需要的方法. ...

  2. [gkk]传智-适配器设计模式,如同电源适配器

    //适配器设计模式 是图形化设计中用的.如同电源适配器 import java.awt.*; inport java.awte public calss MyFrame{ public static ...

  3. JAVA基础—适配器设计模式

    适配器概念 在计算机编程中,适配器模式将一个类的接口适配成用户所期待的.使用适配器,可以使接口不兼容而无法在一起工作的类协调工作,做法是将类自己包裹在一个已经存在的类中. JDK对适配器设计模式的应用 ...

  4. Java设计模式之适配器设计模式(项目升级案例)

    今天是我学习到Java设计模式中的第三个设计模式了,但是天气又开始变得狂热起来,对于我这个凉爽惯了的青藏人来说,又是非常闹心的一件事儿,好了不管怎么样,目标还是目标(争取把23种Java设计模式接触一 ...

  5. IOS设计模式第六篇之适配器设计模式

    版权声明:原创作品,谢绝转载!否则将追究法律责任. 那么怎么使用适配器设计模式呢? 这个之前提到的水平滚动的视图像这样: 为了开始实现他,我们创建一个新的继承与UIView的HorizontalScr ...

  6. 适配器设计模式初探(Java实现)

    本篇随笔主要介绍Java实现设配器设计模式. 先来看下待解决的问题: (图片转自http://blog.csdn.net/jason0539) 由上图的情况可知,欧洲壁式插座只有三足插口,如果我们想要 ...

  7. Design Pattern Adaptor 适配器设计模式

    适配器设计模式是为了要使用一个旧的接口,或许这个接口非常难用,或许是和新的更新的接口不兼容,所以须要设计一个适配器类,然后就能够让新旧的接口都统一. 就是这种一个图: watermark/2/text ...

  8. Java设计模式之适配器设计模式

    1.适配器模式( Adapter)定义将一个类的接口转换成客户希望的另外一个接口.Adapter 模式使得原来由于接口不兼容而不能一起工作的 那些类可以一起工作. 现实案例如下:  墙上电源类(22 ...

  9. 适配器设计模式及GenericServlet(九)

    一共两个知识点:1.Servlet 里面已经有适配器了,名字叫:GenericServlet.      2.什么是适配器模式. 如果这个接口里面有好多方法,那创建A/B/C这个三个类的时候如果必须继 ...

随机推荐

  1. yii2搭建完美后台并实现rbac权限控制实例教程

    1.安装yii2 未安装的请参考yii2史上最简单式安装教程,没有之一 或者参考yii2实战教程之详细安装步骤 已安装的请继续看下一步操作 2.配置数据库 2.1 配置数据库 修改common/con ...

  2. IntelliJ idea的使用

    1.快捷键 2.插件集成 附录:参考资料

  3. cmd 下telnet 不是内部或外部命令

    问题:cmd 下telnet 提示不是内部或外部命令 解决方案:

  4. 控制器中获取store

    在Controller中要获取View中的选中值我用[javascript] view plaincopyprint?var cmp = Ext.ComponentQuery.query('weldl ...

  5. Java--笔记(2)

    11.根据操作系统中的定义:死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态. 死锁的四个必要条件: 1)互斥条件(Mutual ...

  6. ElasticSearch的各种服务的URL

    1.curl192.168.106.58:9200/_cat/health?v 集群健康查看 epoch      timestamp cluster       status node.total ...

  7. <UL>中<li>标签前编号图片的简单调用

    <style type="text/css"> ul li{ list-style-type:none} .men ul{ background:url(http:// ...

  8. iOS 使用AFN 进行单图和多图上传

    图片上传时必要将图片进行压缩,不然会上传失败 1.单张图上传 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManag ...

  9. bzoj3283: 运算器

    #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...

  10. NuGet在Push的时候提示“远程服务器返回错误:(403)已禁用”问题解决

    在使用NuGet把包push到nuget官网的时候,提示了如下信息: Failed to process request. 'The specified API key is invalid or d ...