php设计模式课程---8、适配器模式是什么

一、总结

一句话总结:

充电过程中,手机充电器相对于手机和插座之间就是适配器

1、编程中的适配器是怎么回事?

写一个类(适配器),将传入的数据的格式或者内容修改为需要的,再传出去
例子:而这个类就是相当于手机和插座之间的手机充电器,传入的数据相当于插座上的电,传出的数据相当于给手机充的电
 2 class TianQi {
3 public function get(){
4 // 操作API
5 // 解析XML
6 // 一系列的复杂操作,得到
7 return ['temp'=>25.3 , 'wind'=>9.2];
8 }
9 }
10
11
12 // 到了美国,用华氏度
13 class Us {
14 public function get() {
15 $tq = new TianQi();
16 $row = $tq->get();
17 $row['temp'] = $this->trans( $row['temp'] );
18
19 return $row;
20 }
21
22 public function trans($t) {
23 return $t*9/5+32;
24 }
25 }
26
27
28 $tq = new TianQi();
29 $us = new Us();
30
31 print_r($tq->get());
32 print_r($us->get());

2、适配器模式的作用是什么?

将不适合我们使用的数据通过公式或者格式转换成我们能够使用的数据
总结:其实很多处理数据的操作都可以看做是适配器,也就是使这份数据适配了那种情况

3、适配器的操作对象和输出对象是什么?

操作对象:之前操作的结果(或者别人操作的结果)
输出对象:符合需求了的结果

二、适配器模式是什么

1、代码

 <?php
class TianQi {
public function get(){
// 操作API
// 解析XML
// 一系列的复杂操作,得到
return ['temp'=>25.3 , 'wind'=>9.2];
}
} // 到了美国,用华氏度
class Us {
public function get() {
$tq = new TianQi();
$row = $tq->get();
$row['temp'] = $this->trans( $row['temp'] ); return $row;
} public function trans($t) {
return $t*9/5+32;
}
} $tq = new TianQi();
$us = new Us(); print_r($tq->get());
print_r($us->get()); ?>
 

php设计模式课程---8、适配器模式是什么的更多相关文章

  1. php设计模式课程---6、策略模式如何使用

    php设计模式课程---6.策略模式如何使用 一.总结 一句话总结:比如代码需求,做一饭店,有南北方不同菜系,不同分店有不同的饭菜汤的需求,代码怎么设计 从饭店有特色过渡到厨师有特色(南方厨师(南方饭 ...

  2. php设计模式课程---7、装饰器模式如何使用

    php设计模式课程---7.装饰器模式如何使用 一.总结 一句话总结: 装饰器的核心是获取了文章类整个类,而不是获取了文章内容,有了这个文章类,我想给你加多少装饰就给你加多少装饰(将文章这个类封装进去 ...

  3. php设计模式课程---4、观察者模式的好处是什么

    php设计模式课程---4.观察者模式的好处是什么 一.总结 一句话总结: 方便选择之后去控制监听的板块数:比如选择男士之后,我可以决定监听广告里面的第二和第三板块. 1.为什么有观察者模式? 错误理 ...

  4. php设计模式课程---3、为什么会有抽象工厂方法

    php设计模式课程---3.为什么会有抽象工厂方法 一.总结 一句话总结: 解决简单工厂方法增加新选择时无法满足面向对象编程中的开闭原则问题 1.什么是面向对象编程中的开闭原则? 应该对类的增加开放, ...

  5. php设计模式课程---2、为什么会用到简单工厂设计模式

    php设计模式课程---2.为什么会用到简单工厂设计模式 一.总结 一句话总结: 比如调用数据库的语句,如果调用的数据库名字改了,或者调用的数据库类型改了(比如从Mysql用到了Mysqli),那么要 ...

  6. php设计模式课程---1、什么是设计模式

    php设计模式课程---1.什么是设计模式 一.总结 一句话总结:经典场景的经典解决方法. 经典场景的经典解决方法 1.设计模式使用的通俗场景有哪些? 比如:拍电影时,常用设计模式 感情狗血剧:误会模 ...

  7. php设计模式课程---9、桥接模式是什么

    php设计模式课程---9.桥接模式是什么 一.总结 一句话总结: 一个类没干完,另外一个类接着给它干完 实质是类的拼接,也就是用类的组合代替了类的继承,因为类的组合可以有很多种方式,所以桥接就是类的 ...

  8. php设计模式课程---5、责任链模式是什么

    php设计模式课程---5.责任链模式是什么 一.总结 一句话总结: 自己权限不够,就交给上级处理 1.选择结构怎么做到面向对象开闭原则? 也就是说if,都可以用接口的实现来实现,这样就避免了更新的时 ...

  9. 设计模式 结构型 - 适配器模式 Adapter

    Adapter(适配器模式) ---- 加个“适配器”以便于复用 将一个类的接口转换成客户希望的另一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 应用场景 如果 ...

随机推荐

  1. Exploiting CVE-2015-2509 /MS15-100 : Windows Media Center could allow remote code execution

    Exploiting CVE-2015-2509 /MS15-100 : Windows Media Center could allow remote code execution Trend Mi ...

  2. Linux的驱动模块管理:modprobe

    由一段脚本開始: MODULE_PATH=/lib/modules/`uname -r` if [ ! -f ${MODULE_PATH}/modules.dep.bb ]; then # depmo ...

  3. map端join

    package my.hadoop.hdfs.mapreduceJoin; import java.io.BufferedReader; import java.io.FileInputStream; ...

  4. apache重定向无效

    这个问题让我纠结了蛮久啊,因为之前一直不注意SEO,网站带www和不带www的一级域名都被收录了,而且不知道为什么不带www的一级域名被收录比www还多,这可不是我的初衷!这次吸取教训了,以后再开站不 ...

  5. 向MapReduce转换:通过部分成绩计算矩阵乘法

    代码共分为四部分: <strong><span style="font-size:18px;">/*** * @author YangXin * @info ...

  6. 【问题】:spring cloud sleuth日志组件冲突问题

    在使用spring cloud sleuth的时候,启动工程报错如下: 根据错误信息明显就是jar包冲突,spring boot默认用的是logback,所以移除其中一个依赖就可以了,修改pom依赖为 ...

  7. cmake实战第一篇:初试 cmake

    1.准备工作: 首先,在/code_test 目录下建立一个 cmake 目录,用来放置我们学习过程中的所有练习.(如果以下命令出现xxx: cannot create directory ‘x’:  ...

  8. ios uitableview button 获取cell indexpath.row

    在iOS7下面已经无效,因为iOS7的层级关系发生变化 UITableViewCell->UITableViewCellScrollView->UITableViewCellContent ...

  9. Selenium+C#自动化脚本开发学习

    1:Selenium中对浏览器的操作 首先生成一个Web对象 IWebDriver driver = new FirefoxDriver(); //打开指定的URL地址 driver.Navigate ...

  10. 做完task1-21的阶段总结

    [说明]这是自注册修真院的第七天,也是第七篇日报,觉得是一个好的时机总结一下. 因为任务一虽然看起来仅仅是“完成学员报名的DB设计并读写数据库”,但是做了几天之后就发现在任务“搭建自己的服务器”之前的 ...