适配器模式(对象适配器、类适配器): 

  将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。

  在适配器模式定义中所提及的接口是指广义的接口,它可以表示一个方法或者方法的集合。
  角色:
  Target(目标抽象类)
    目标抽象类定义客户所需的接口,可以是一个抽象类或接口,也可以是具体类。
  Adapter(适配器类)
    它可以调用另一个接口,作为一个转换器,对Adaptee和Target进行适配。它是适配器模式的核心。
  Adaptee(适配者类)
    适配者即被适配的角色,它定义了一个已经存在的接口,这个接口需要适配,适配者类包好了客户希望的业务方法。

对象适配器:

interface Target{
public function MethodOne();
public function MethodTwo();
} class Adaptee{
public function MethodOne(){
echo "+++++++++\n";
}
} class Adapter implements Target{
private $adaptee;
public function __construct(Adaptee $adaptee){
$this->adaptee = $adaptee;
} public function MethodOne(){
$this->adaptee->MethodOne();
} public function MethodTwo(){
echo "------------";
}
} $adaptee = new Adaptee();
$adapter = new Adapter($adaptee);
$adapter->MethodOne();

类适配器:

class Adapter2 extends Adaptee implements Target{
public function MethodTwo(){
echo "-----------";
}
}
$adapter2 = new Adapter2();
$adapter2->MethodOne();

最新文章

  1. 一次基于etcd的分布式锁自动延时失败问题的排查
  2. jQuery File Upload done函数没有返回
  3. poj 3321:Apple Tree(树状数组,提高题)
  4. MATLAB中提供的线型属性
  5. C#全角转换成半角并检查
  6. 启动hadoop
  7. Ubuntu 改动bash
  8. javascript小实例,PC网页里的拖拽(转)
  9. 教你如何理解SQL
  10. I/O重定向与管道
  11. 基于视觉的Web页面分页算法VIPS的实现源代码下载
  12. 文本处理sed常用操作
  13. ubuntu系统普通用户sudo命令执行报错解决方案
  14. C#基础(六)--枚举的一些常用操作
  15. 详解BLE连接建立过程
  16. golang数据类型与转换
  17. iOS开发支付篇-内购(IAP)
  18. spring事务详解(三)源码详解
  19. jQuery的基本选择器
  20. centos系统中php7安装memcached 扩展

热门文章

  1. 整理了一份比较全面的PHP开发编码规范.
  2. 图像分割-Mask Scoring R-CNN
  3. JAVA 基础编程练习题20 【程序 20 求前 20 项之和】
  4. Linux信号、信号处理和信号处理函数
  5. jenkins通过ssh登不上远程主机
  6. Spring Security(1):认证和授权的核心组件介绍及源码分析
  7. idea调试jdk1.8源码(最新)
  8. jeesite框架前端 tabPage页签刷新功能。
  9. 建立本地yum仓库
  10. windows是下安装nvmw