对象适配器有以下特点:

  1. 有的时候,你会发现,不是很容易去构造一个Adaptee类型的对象;
  2. 当Adaptee中添加新的抽象方法时,Adapter类不需要做任何调整,也能正确的进行动作;
  3. 可以使用多肽的方式在Adapter类中调用Adaptee类子类的方法。

代码实现:

 // Adapter.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <iostream>
#include<string>
using namespace std; class Target
{
public:
Target(){}
virtual ~Target(){}
virtual void Request()
{
cout << "Target::Request" << endl;
}
};
class Adaptee
{
public:
void SpecificRequest()
{
cout << "Adaptee::SpecificRequest" << endl;
}
}; class Adapter : public Target
{
public:
Adapter() : m_Adaptee(new Adaptee) {}
~Adapter()
{
if (m_Adaptee != NULL)
{
delete m_Adaptee;
m_Adaptee = NULL;
}
}
void Request()
{
m_Adaptee->SpecificRequest();
} private:
Adaptee *m_Adaptee;
};
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"适配器模式:"<<endl;
Target *targetObj = new Adapter();
targetObj->Request();
delete targetObj;
targetObj = NULL;
system("pause");
return ;
}

最新文章

  1. Spark机器学习&#183; 实时机器学习
  2. Mysql5.5升级到5.7后MySQLdb不能正常使用的问题解决
  3. 反射(Reflection)的SetValue遇上DBNULL转换为string
  4. Android 图片的缩放与旋转
  5. WEB三层架构与MVC
  6. 为什么V8引擎这么快?
  7. python 将pdf分页后插入至word中
  8. Promise 学习笔记
  9. oracle登陆的命令是什么?导出数据表的命令是什么?
  10. Android 实现切换主题皮肤功能(类似于众多app中的 夜间模式,主题包等)
  11. IIS 7.5站点配置
  12. C语言文件函数
  13. Learn_Dynamic
  14. JS 点击事件失效
  15. 【转】《分享一下我研究SQLSERVER以来收集的笔记》未整理
  16. USACO 3.2 Factorials
  17. 几个地图(高德、百度、Apple、Google)URL API
  18. BinarySearchTree-二叉搜索树
  19. 【算法导论】最小生成树之Prime法
  20. 基于mysql的一些sql语法

热门文章

  1. Java中参数传递时值传递的机制分析
  2. PAT 1043 Is It a Binary Search Tree[二叉树][难]
  3. 20155305乔磊2016-2017-2《Java程序设计》第九周学习总结
  4. linux 异常
  5. [one day one question] 部分ios版本 在display: inline-block时候不支持flex
  6. PHP设计模式_单例模式
  7. POJ 3169 Layout(差分约束+最短路)题解
  8. Gym 101334F Feel Good
  9. codeforces 256 div2 C. Painting Fence 分治
  10. mybatis generator为实体类生成自定义注释(读取数据库字段的注释添加到实体类,不修改源码)