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. python中常用的base64 md5 aes des crc32等的加密解密

    1.base64 Python内置的base64模块可以实现base64.base32.base16.base85.urlsafe_base64的编码解码,python 3.x通常输入输出都是二进制形 ...

  2. 50 years of Computer Architecture: From the Mainframe CPU to the Domain-Specific TPU and the Open RISC-V Instruction Set

    1.1960年代(大型机) IBM发明了具有二进制兼容性的ISA——System/360,可以兼容一系列的8到64位的硬件产品,而不必更换操作系统.这是通过微编程实现的,每个计算机模型都有各自的ISA ...

  3. Dockerfile安装KOD可道云

    [root@docker01 base2]# cat Dockerfile FROM centos:6.8 RUN yum install openssh-server -y RUN /etc/ini ...

  4. php跨域共享session

    . $gb_DBHOSTname = "127.0.0.1"; //主机的名称或是IP地址 02 $gb_DBname = "dbname"; //数据库名称 ...

  5. 64位win7环境eclipse集成svn后出现Failed to load JavaHL Library的解决办法

    http://lushuifa.iteye.com/blog/2038000

  6. Linux mail发送邮件

    发送前一天的监控日志#!/bin/bash source /etc/profile time=`date -d '-1 day' "+%Y%m%d"` #判断服务是否已经启动 se ...

  7. 【hiho一下】第一周 最长回文子串

    题目1:最长回文子串 题目原文:http://hihocoder.com/contest/hiho1/problem/1 [题目解读] 题目与 POJ 3974 palindrome 基本同样.求解最 ...

  8. obj-c学习笔记

    本文转载至 http://blog.csdn.net/c395565746c/article/details/7573793   当对象经过在dealloc方法处理时,该对象就已经处于已销毁状态,其它 ...

  9. python 基础 9.11 更改数据

    #/usr/bin/python #-*- coding:utf-8 -*- #@Time   :2017/11/24 4:45 #@Auther :liuzhenchuan #@File   :更改 ...

  10. Robbery(记忆化搜索)

    Robbery Inspector Robstop is very angry. Last night, a bank has been robbed and the robber has not b ...