<?php
/** 适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原来由于接口不兼容而不能一起工作的那些类可以一起工作(结构型模式)* * 一个源接口,不符合客户的需求* 一个目标接口,客户需要的接口* 适配器类,实现客户的接口,包装了源接口*///源接口
interface China{public function flat();
}class Chinese implements China{public function flat(){echo '我用扁形孔充电';}
}//$xiaoming = new Chinese();
//$xiaoming->flat();//以上是已经存在的对象小明,他在中国用扁形孔来充电
//现在他到了欧洲,欧洲充电是圆形孔//目标接口
interface Europe{public function round();
}//适配器,包含源接口,实现(继承)目标接口
class European implements Europe{public $xiaoming;public function __construct($chinese){$this->xiaoming = $chinese;}public function round(){echo '在欧洲,利用电源适配器,';$this->xiaoming->flat();}
}class Client{public static function main(){$chinese = new Chinese();$european = new European($chinese);$european->round();}
}
Client::main();
?>

  UML类图:

转载于:https://www.cnblogs.com/taijun/p/4103235.html

php实现设计模式之 适配器模式相关推荐

  1. C#设计模式(7)——适配器模式(Adapter Pattern)

    一.引言 在实际的开发过程中,由于应用环境的变化(例如使用语言的变化),我们需要的实现在新的环境中没有现存对象可以满足,但是其他环境却存在这样现存的对象.那么如果将"将现存的对象" ...

  2. 乐在其中设计模式(C#) - 适配器模式(Adapter Pattern)

    [索引页] [源码下载] 乐在其中设计模式(C#) - 适配器模式(Adapter Pattern) 作者:webabcd 介绍 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本 ...

  3. 跟JBPM学设计模式之适配器模式

    跟JBPM学设计模式之适配器模式 模式简介 适配器模式(Adapter),将一个类的接口转换成客户希望的另一个接口.适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 说起适配器模式 ...

  4. python适配器模式角色_Python设计模式之适配器模式原理与用法详解

    本文实例讲述了Python设计模式之适配器模式原理与用法.分享给大家供大家参考,具体如下: 适配器模式(Adapter Pattern):将一个类的接口转换成为客户希望的另外一个接口. 下面是一个适配 ...

  5. 【设计模式】—— 适配器模式Adapter

    模式意图 如果已经有了一种类,而需要调用的接口却并不能通过这个类实现.因此,把这个现有的类,经过适配,转换成支持接口的类. 换句话说,就是把一种现有的接口编程另一种可用的接口. 模式结构 [类的适配器 ...

  6. 设计模式适配器模式_21世纪的设计模式:适配器模式

    设计模式适配器模式 这是我的演讲的第三部分," 21世纪的设计模式" . 适配器模式桥接世界. 在一个世界中,我们有一个概念的界面. 在另一个世界,我们有不同的界面. 这两个接口有 ...

  7. Java面试题:单例设计模式、适配器模式的不同方式

    QUESTION:单例设计模式.适配器模式的不同方式? ANSWER: 1.单例设计模式,适配器设计模式     单利设计模式:             在java中,单例模式是指为了保证类在内存中只 ...

  8. [学习笔记]设计模式[6]-{适配器模式外观模式}

    设计原则 最少知识原则:只和你的密友谈话 这个原则的意思是,在系统设计的过程中,不要让太多的类耦合在一起,免得对系统一部分的修改会影响到其他部分.在设计系统之前,应该首先注意对象与对象之间的交互关系, ...

  9. 适配器模式_21世纪的设计模式:适配器模式

    适配器模式 这是我的演讲的第三部分," 21世纪的设计模式" . 适配器模式桥接世界. 在一个世界中,我们有一个概念的界面: 在另一个世界中,我们有不同的界面. 这两个接口有不同的 ...

  10. 设计模式回顾——适配器模式(C++)

    文章目录 1 前言 2 什么是适配器模式 2.1 生活中的适配器 2.2 适配器模式含义 2.3 适配器模式作用 3 适配器模式优缺点 3.1 适配器优缺点 3.2 类适配器优缺点 3.3 对象适配器 ...

最新文章

  1. Fescar 发布 0.3.0 版本, 支持 Eureka 注册中心
  2. 科学家发现量子大脑传感器可以跟踪脑电波,这可能对发现脑疾病至关重要
  3. 超图三维GIS在线示例
  4. ACL和NAT内容整理
  5. 单体架构到微服务架构的带来的变化
  6. springcloud实践之断路器:Hystrix原理和解构
  7. mysql写到excel_使用Python从 MySQL写数据到Excel
  8. 【背包】作业(jzoj 1986)
  9. java jax-rs_在Java EE 7和WildFly中使用Bean验证来验证JAX-RS资源数据
  10. 开发一个出生年份的下拉选择框供用户选择_关于下拉式菜单,这一篇足够了
  11. java网络病毒,网络病毒是由因特网衍生出的新一代病毒,即Java及ActiveX病毒。由于(),因此不被人们察觉。...
  12. 在linux内核中修改TCP MSS值
  13. 微信H5 用户调整微信字体 导致使用rem的页面错乱
  14. iMac2021 在重新安装mac os系统后,电脑账户创建失败
  15. 地球系统模式(CESM)应用
  16. 计算机毕业设计 SSM车辆挂牌管理系统 电动车实名挂牌管理系统 车辆挂牌办理系统Java Vue MySQL数据库 远程调试 代码讲解
  17. 信息熵与信息增益的概念
  18. android studio 双屏,Android Presentation双屏异显,副屏的操作
  19. Linux CFS调度算法关键知识点
  20. 群体智能算法之蚁群算法初探(一)

热门文章

  1. matlab freqz函数使用
  2. SetupDiGetClassDevs函数详解
  3. forms oracle runtime_Oracle EBS R12 clone 完毕后,登陆到系统,在运行FORMS程序的时候出现FRM-92101...
  4. RabbitMQ 消息确认机制 以及 原理解析
  5. 034_jdbc-mysql-C3P0
  6. 实战派mysql高阶应用指南_MySQL高阶SQL语句(学会这些,让你对于数据库游刃有余)_Gengchenchen的博客-CSDN博客...
  7. mysql数据库唯一性_mysql表的字段怎么设置唯一性
  8. nmcli命令详解_【高新课堂】第一百二十五期Liunx必备命令
  9. python中importlib模块安装_importlib模块
  10. 新概念一册电子书课本_新概念英语第二册完整版:音频+动画视频+课本图文讲解...