Adapter 模式是一个常用的模式,它可以与其他很多模式共同使用
Adapter模式的意图是 将一个类的接口转换成希望的另外一种接口,Adapter模式使原本由接口不兼容而不能一起工作的那一些类可以起工作,就是说 需要一种方法,为一个内容合适但接口不配的对象创建一个新的接口,这样把一个类的接口转换成客户端所期待的另一个接口,从而使原接口不匹配而无法在一起工作的两个类能在一起工作
意图:将一个无法控制的现有对象与一个特定的接口相匹配
问题:一个系统拥有正确的数据行为,但接口却是错误的,典型用途:必须把某些东西实现为定义或已经拥有的抽象类的派生类
角色:目标(定义一个客户端使用特定接口)、客户(使用目标接口与和目标接口一致的对象合作)、被适配者(一个现存需要匹配的接口)、适配器(负责将接口转换成目标)
解决方案:Adapter模式用需要的接口对无法修改的类进行包装
参与者与协作者:Adapter 对 Adaptee 的接口进行适配,使它与Target(Adapter派生自它)相匹配。让 Client 把 Adaptee 当作 Target 的一个类型来使用它
效果:Adapter 模式让现存的对象适应新的结构,而不受接口的限制
实现:将现存的类包含在另一个类之中。包容类与需要的接口相匹配,并调用被包容类的方法
许多模式都要求某些特定的派生自同一个类,如果已经有现存的类,可以用 Adapter模式将它与适当的抽象类相适配
Adapter模式有两种用类型:
1> 对象 Adapter 模式:使用 Adapter模式叫做对象Adapter模式,因为它依赖于一个对象(适配对象)包含另一个对象(被适配对象)
2> 类 Adapter 模式:实现 Adapter模式的另一种方法是使用多重继承,在这种情况下,它被称为类 Adapter模式
Facade模式 与 Adapter模式的比较
Adapter模式将接口转换成另一个现有的接口
如,示例代码:
public interface XmlReader {
public InputStream xmlReader();
}
public interface ReaderXml {
public InputStream readerXml();
}
public class B implements ReaderXml {
@Override
public InputStream readerXml() {
return null ;
}
}
public class Adapter1 extends B implements XmlReader {
@Override
public InputStream xmlReader() {
return readerXml();
}
}
public class Adapter2 implements XmlReader {
ReaderXml b = new B();
@Override
public InputStream xmlReader() {
return b .readerXml();
}
}

Adapter(适配器)模式相关推荐

  1. 设计模式学习之---Adapter(适配器)模式

    1.Adapter适配器模式,是一种接口型模式.它将一个或多个类的接口,转换成客户所期望的接口. 2.它的宗旨是:基于现有类所提供的服务,向客户提供接口,以满足客户的期望. 3.实现:创建一个客户所需 ...

  2. 16Adapter(适配器)模式

    技术交流QQ群:1027579432,欢迎你的加入! 1.Adapter(适配器)模式的动机 在软件系统中,由于应用环境的变化,常常需要将一些现存的对象放在新的环境中应用,但是新环境要求的接口是这些现 ...

  3. Java 设计模式 Adapter 对象适配器 模式

    Java 设计模式 Adapter 对象适配器 模式 Adapter模式用于现有的程序无法直接使用,需要做适当的变换之后才能使用的情况. 涉及到的角色 Target对象:定义所需的方法. Client ...

  4. android中Adapter适配器的讲解

    android中Adapter适配器的讲解 Adapter(适配器的讲解) 适配器就我自己来看,我觉得这是一个非常重要的知识点,Adapter是用来帮助填出数据的中间桥梁,简单点说吧:将各种数据以合适 ...

  5. Adapter适配器与具体应用

    Adapter适配器与具体应用 一.Adapter介绍: 1.Adapter是什么:Adapter适配器是沟通数据与视图的桥梁,用于对要进行显示的数据进行处理, 并通过与视图对象的绑定从而将数据显示到 ...

  6. android 之UI 高级控件Adapter(适配器详解)

    了解适配器组件: 适配器是一个连接数据源和AdapterView的桥梁,通过它能有效的实现数据源与AdapterView的分离设置,使AdaptereView与数据的绑定更加简便,修改更加方便. Ad ...

  7. Adapter适配器和base-adapter-helper库的使用

    文章目录 Adapter适配器 概述 关于视图重用 关于ViewHolder 使用步骤 base-adapter-helper库的使用 1.导入库 2.将库中的java文件复制到项目中 3.编译并解决 ...

  8. Android中使用Adapter(适配器)给RecycleView设置数据源

    场景 RecyclerView RecyclerView是Android一个更强大的控件,其不仅可以实现和ListView同样的效果,还有优化了ListView中的各种不足.其可以实现数据纵向滚动,也 ...

  9. adapter 适配器

    定义: 适配器模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 示例: 比如,水货的手机充电器插头是欧美标准(大头插座),中国的插座是 ...

  10. Android适配器以及作用,Android Studio:自定义Adapter(适配器)的一些通俗易懂的理解(以一个简单的聊天界面为例)...

    本文是博主对Adapter(适配器)的一些理解,为了加深对Adapter的理解以及记录自己的阶段学习而写,同时也适合初学者阅读,参考本条博客的逻辑进行学习. 第一  先来看看实现这个程序需要需要创建哪 ...

最新文章

  1. Namenode主备切换或报 IPC Server handler 23 on 8020
  2. itextpdf 生成word显示不全_Word经常遇到这些偏僻小问题,值的收藏
  3. mui + vue 模板
  4. 带有控制按钮的图片滚动
  5. Ubantu下使用vi时,方向键变字母输出、退格键无法删除字符的解决办法
  6. 计算机更改桌面,2010年职称计算机考试:更改桌面背景和颜色
  7. 晶晶赴约会(信息学奥赛一本通-T1049)
  8. HTML怎么让img 等比例缩放
  9. URAL 1404. Easy to Hack! (模拟)
  10. react优秀项目案例_2020中国5G+工业互联网大会:鄂州2项目现场签约,2项目入选十大优秀案例...
  11. SylixOS网络协议栈---Lwip协议栈之ARP表
  12. SRNTT:Image Super-Resolution by Neural Texture Transfer
  13. 数字滤波器设计工具_数字设计师和代理商的资源和工具
  14. 速学堂java面试题_速学堂JAVA300集 第四章作业练习题
  15. 良田摄像头 linux,良田万能摄像头高拍仪驱动下载|良田万能摄像头驱动 官方版 - 软件下载 - 绿茶软件园|33LC.com...
  16. [信号]预加重与去加重--转
  17. php公众号客服系统,公众号客服系统完全攻略
  18. 安卓搜不到airpods_airpods忽略设备后再也搜不到了怎么办
  19. 【牛客网OJ题】计算糖果
  20. 未压缩视频数据计算方式

热门文章

  1. linux usb重定向window,基于Linux的USB设备重定向研究.pdf
  2. 超像素分割算法(SLIC)
  3. 代码:小波包分解与重构、小波包能量特征提取
  4. AutoCAD.net 自定义窗体及面板与CAD交互时的焦点切换问题(C#)
  5. DSA_常用10种算法(java数据结构与算法)
  6. 松下plc安装序列号afpsgr7_《松下PLC 编程软件 FPWINGR7 操作手册 中文高清版》.pdf...
  7. 1.4多媒体技术的发展历史
  8. 基于单片机智能药盒控制系统设计(含论文)
  9. 单片机外文参考文献期刊_单片机_英文参考文献..doc
  10. 添加内核驱动模块(3)(mydriver.c+ Konfig+Makefile )