博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式---适配器模式
阅读量:5323 次
发布时间:2019-06-14

本文共 1682 字,大约阅读时间需要 5 分钟。

一、定义

适配器模式:将一个类的借口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。

二、模式结构

适配器模式包含如下角色:

  • Target:目标抽象类
  • Adapter:适配器类
  • Adaptee:适配者类
  • Client:客户类

适配器模式有对象适配器和类适配器两种实现:

对象适配器:

类适配器:

三、代码样例

#include 
#include "Adapter.h"#include "Adaptee.h"#include "Target.h"using namespace std;int main(int argc, char *argv[]){ Adaptee * adaptee = new Adaptee(); Target * tar = new Adapter(adaptee); tar->request(); return 0;}
/////  Adapter.h//  Implementation of the Class Adapter//  Created on:      03-十月-2014 17:32:00//  Original author: colin///#if !defined(EA_BD766D47_0C69_4131_B7B9_21DF78B1E80D__INCLUDED_)#define EA_BD766D47_0C69_4131_B7B9_21DF78B1E80D__INCLUDED_#include "Target.h"#include "Adaptee.h"class Adapter : public Target{public:    Adapter(Adaptee *adaptee);    virtual ~Adapter();    virtual void request();private:    Adaptee* m_pAdaptee;};#endif // !defined(EA_BD766D47_0C69_4131_B7B9_21DF78B1E80D__INCLUDED_)
/////  Adapter.cpp//  Implementation of the Class Adapter//  Created on:      03-十月-2014 17:32:00//  Original author: colin///#include "Adapter.h"Adapter::Adapter(Adaptee * adaptee){    m_pAdaptee =  adaptee;}Adapter::~Adapter(){}void Adapter::request(){    m_pAdaptee->specificRequest();}
/////  Adaptee.h//  Implementation of the Class Adaptee//  Created on:      03-十月-2014 17:32:00//  Original author: colin///#if !defined(EA_826E6B4F_12BE_4609_A0A3_95BD5E657D36__INCLUDED_)#define EA_826E6B4F_12BE_4609_A0A3_95BD5E657D36__INCLUDED_class Adaptee{public:    Adaptee();    virtual ~Adaptee();    void specificRequest();};#endif // !defined(EA_826E6B4F_12BE_4609_A0A3_95BD5E657D36__INCLUDED_)

 运行结果:

转载于:https://www.cnblogs.com/zhanghu52030/p/9598095.html

你可能感兴趣的文章
css装饰文本框input
查看>>
HBase RegionServer宕机处理恢复
查看>>
377. Combination Sum IV
查看>>
一款jq的计时器
查看>>
求1+2+…+n
查看>>
开发者必备的6款源码搜索引擎
查看>>
一个值只有0和1的字段,到底要不要建索引?
查看>>
JavaScript的Math对象
查看>>
form 禁止跳转
查看>>
第七周学习总结
查看>>
20145122《JAVA开发环境的熟悉》实验报告
查看>>
186. Reverse Words in a String II
查看>>
JAVA-初步认识-第五章-数组-常见操作-进制转换整合
查看>>
如何在.net4.0中使用.net4.5的async/await
查看>>
Spring自定义标签实现及踩过的坑(亲测)
查看>>
一些字符串的题
查看>>
第2章:标准输入与输出
查看>>
个人项目——买书
查看>>
POJ 2309 BST
查看>>
Codefroces 415B Mashmokh and Tokens
查看>>