#pragma once#ifndef ADAPTER_H #define ADAPTER_H // 需要被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;
}; #endif
#include "StdAfx.h"
#include "adapter_impl.h"#include <iostream> void Adaptee::SpecialRequest()
{ std::cout << "SpecialRequest of Adaptee\n";
} Adapter::Adapter(Adaptee* pAdaptee)
: m_pAdptee(pAdaptee)
{
} Adapter::~Adapter()
{ delete m_pAdptee; m_pAdptee = NULL;
} void Adapter::Request()
{ std::cout << "Request of Adapter\n"; m_pAdptee->SpecialRequest();
}
// Adapter.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"#include "adapter_impl.h"
#include <stdlib.h>
// 将一个类的接口转换成客户希望的另外一个接口。Adapt 模式使得原本由于接
// 口不兼容而不能一起工作的那些类可以一起工作。
int _tmain(int argc, _TCHAR* argv[])
{Adaptee *pAdaptee = new Adaptee; //新加入的不兼容接口 Target *pTarget = new Adapter(pAdaptee); //已定义接口pTarget->Request(); delete pTarget; system("pause"); return 0;
}

设计模式-结构型-适配器相关推荐

  1. [设计模式-结构型]适配器(Adapter)

    概括 名称 Adapter 结构 动机 将一个类的接口转换成客户希望的另外一个接口.Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 适用性 你想使用一个已经存在的类,而 ...

  2. 4.C++设计模式-结构型模型

    4.C++设计模式-结构型模型 让类和类进行组合,获得更大的结构. 4.1 代理模式 4.1.1 代理模式的理论 代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个对象不 ...

  3. 23种设计模式——结构型设计模式(7种)

    目录 ☞ 23 种设计模式--创建型设计模式(5种) ☞ 23 种设计模式--结构型设计模式(7种) ☞ 23 种设计模式--行为型设计模式(11种) 3. 结构型设计模式 结构型模式描述如何将类或对 ...

  4. 设计模式 - 结构型

    结构型设计模式 结构型模式(Structural Pattern)关注类和对象的组合.其描述如何将类或者对象结合在一起形成更大的结构,就像搭积木,可以通过简单积木的组合形成复杂的.功能更为强大的结构. ...

  5. 设计模式-结构型模式篇

    设计模式 目录: 一.代理模式 二.适配器模式 三.装饰者模式 四.桥接模式 五.外观模式 六.组合模式 七.享元模式 注:学习视频:黑马程序员Java设计模式 结构型模式 结构性模式描述如何将类或对 ...

  6. 设计模式-结构型模式-装饰模式

    设计模式-结构型模式-装饰模式 栗子 以成绩单需要家长签字为要求. 成绩单类图 // 抽象成绩单 public abstract class SchoolReport{// 成绩单你的成绩情况publ ...

  7. 设计模式(结构型)之享元模式(Flyweight Pattern)

    PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbob ...

  8. 设计模式(结构型)之代理模式(Proxy Pattern)

    PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbob ...

  9. JAVA设计模式--结构型模式

    2019独角兽企业重金招聘Python工程师标准>>> 我们接着讨论设计模式,上篇文章我讲完了5种创建型模式,这章开始,我将讲下7种结构型模式:适配器模式.装饰模式.代理模式.外观模 ...

最新文章

  1. 最喜欢随机森林?周志华团队 DF21 后,TensorFlow 开源决策森林库 TF-DF
  2. 股骨截骨php钢板,股骨远端截骨(DFO)术前设计及手术步骤【附视频】
  3. python 模拟登陆智联_Python+scrapy爬虫之模拟登陆
  4. socket编程中常见的概念问题!
  5. c语言程序设计实验报告2,C语言程序设计实验报告2.docx
  6. 19行代码AC——例题 6-2 铁轨(Rails, UVa 514)——解题报告
  7. 2.3线性表的链式存储和运算—单链表应用举例
  8. 减治法解决八枚硬币问题/假币问题(JAVA)----二分,三分,不知轻重的情况
  9. Laravel核心解读--HTTP内核
  10. android mtk平台的fm停止搜索,【MTK平台,手机工程模式知识及方法详解】
  11. 利用通用权限管理系统底层解决数据从不同库的导入导出问题
  12. html中异步上传文件实现示例,HTML_html中异步上传文件实现示例,复制代码代码如下: form actio - phpStudy...
  13. Windows平台下使用GoLand生成Linux可执行文件
  14. 在线预览word接口
  15. 对称与非对称密钥加密
  16. 节假日查询 API数据接口
  17. mac安装win7之后鼠标失灵_2013款mac air及一体机安装win7 键盘鼠标失灵的解决方法...
  18. 论中职计算机基础课程授课方法,浅论中职《计算机基础》的教法与学法
  19. hackerrank初级篇之Mini-Max Sum
  20. 计算机编程中的草图,我每天都画草图,你也该试试看

热门文章

  1. 【Linux】11.将ubuntu电脑设置为一台可远程ssh或sftp访问的服务器
  2. [Google Guava] 2.1-不可变集合
  3. JavaWeb学习总结(十三)——使用Session防止表单重复提交
  4. 发一张你认为很漂亮的美女照片?
  5. Python-OpenCV 杂项(二)(三): 鼠标事件、 程序性能的检测和优化
  6. 利用python进行识别相似图片(二)
  7. 快排Quick Sort到底有多快?
  8. 如何查阅资料,解决问题(个人的小看法)
  9. 发布几个PDF小工具
  10. 鸟哥的Linux私房菜(基础篇)-第二章、 Linux 如何学习(二.2. 鸟哥的Linux苦难经验全都录)