作用:

  将一个类的接口转换成客户希望的另外一个接口。Adapt 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

  UML示意图

  1)采用继承原有接口类的方式

  2)采用组合原有接口类的方式

  解析:

  Adapt模式其实就是把完成同样的一个功能但是接口不能兼容的类桥接在一起使之可以在一起工作,这个模式使得复用旧的接口成为可能.

  实现:

  Adapt模式有两种实现办法,一种是采用继承原有接口类的方法,一种是采用组合原有接口类的方法,这里采用的是第二种实现方法.

#include <iostream> using namespace std; // 需要被Adapt的类 class Target { public: Target(){} virtual ~Target() {} virtual void Request() = 0; }; // 与被Adapt对象提供不兼容接口的类 class Adaptee { public: Adaptee(){} ~Adaptee(){} void SpecialRequest(); }; // 进行Adapt的类,采用聚合原有接口类的方式 class Adapter : public Target { public: Adapter(Adaptee* pAdaptee); virtual ~Adapter(); virtual void Request(); private: Adaptee* m_pAdptee; }; void Adaptee::SpecialRequest() { cout << "SpecialRequest of Adapteen"; } Adapter::Adapter(Adaptee* pAdaptee) : m_pAdptee(pAdaptee) { } Adapter::~Adapter() { delete m_pAdptee; m_pAdptee = NULL; } void Adapter::Request() { cout << "Request of Adaptern"; m_pAdptee->SpecialRequest(); } void main() { Adaptee *pAdaptee = new Adaptee; Target *pTarget = new Adapter(pAdaptee); pTarget->Request(); delete pTarget; }

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

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

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

  2. 设计模式-Adapter模式

    目录 相关概念 对象适配器 类适配器 一个例子 总结 适配器模式(Adapter Pattern)是结构型模式.主要用来解决接口不兼容的问题,将一个类的接口变换成客户端所期待的另一种接口,从而使原本因 ...

  3. 精读《设计模式 - Adapter 适配器模式》

    Adapter(适配器模式) Adapter(适配器模式)属于结构型模式,别名 wrapper,结构性模式关注的是如何组合类与对象,以获得更大的结构,我们平常工作大部分时间都在与这种设计模式打交道. ...

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

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

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

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

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

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

  7. adapter 适配器

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

  8. android中Adapter适配器的讲解

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

  9. Adapter适配器与具体应用

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

最新文章

  1. UIWebView实现离线浏览
  2. 电气接线+线号管正确方向=电工接线好习惯!你有吗?
  3. Saltstack数据系统Grains和Pillar(三)
  4. mysql 常用字符串操作
  5. spring中定时器的使用
  6. git clone github源码 下载速度很慢的解决方法
  7. PAYPAL 支付,sandbox测试的时候遇到异常:请求被中止: 未能创建 SSL/TLS 安全通道,以及解决方法。
  8. TreeSet有序集合
  9. [渝粤教育] 苏州科技大学 混凝土结构设计原理 参考 资料
  10. 方差分析表和回归分析表的那些浆糊糊
  11. Spring全家桶简介
  12. 到底要不要孩子学习机器人编程
  13. Android开发自定义相机,自定义拍照界面
  14. i5 12400f和i3 12100f性能对比
  15. 21秋期末考试建筑工程概预算10326k2
  16. 【前端】css3实现三阶魔方原型
  17. 美创科技与您一同回顾2022年一季度网络与数据安全政策
  18. gsoap linux 编译,gSOAP嵌入式linux下的移植与程序开发
  19. 我用python分析了李子柒的辣酱真的好吃吗?
  20. [附源码]Python计算机毕业设计SSM即刻实时预约排队系统(程序+LW)

热门文章

  1. springboot中接口实例化_AngularJs中控制器的定义,实例化,作用域范围
  2. modern android5.1,Modern摩登印
  3. android 基类fragment,Android DialogFragment 基类的定制
  4. 计算机专业人毕业设计外文翻译,计算机专业毕业设计外文翻译.doc
  5. python中与label类似的控件是_python中tkinter的使用(控件整理)(一)
  6. java接口方法实现_Java接口的简单定义与实现方法示例
  7. 排序千万级数据_从千万级房产成交量排名,窥探中国城市的真实家底
  8. matlab中如何调用gpu进行并行计算_极致安卓-Termux/Aid learning开启WebGL手机GPU并行计算...
  9. 0 0/2 * * * ? linux文本含义,Linux基础2.0
  10. java 百度poi_Android应用中使用百度地图API之POI(三)