适配器模式(Adapter)

结构模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构。结构模式描述两种不同的东西:类与类的实例。根据这一点,结构模式可以分为类的结构模式和对象的结构模式。

        结构模式包括以下几种:

  • 适配器模式(Adapter):
  • 合成模式(Composite):
  • 装饰模式(Decorator):
  • 代理模式(Proxy):
  • 享元模式(Flyweight):
  • 门面模式(Facade):
  • 桥梁模式(Bridge):

一、 适配器(Adapter)模式

适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。

#ifndef ADAPTER_H_
#define ADAPTER_H_

class Target
{
public:
 Target(){}
 virtual~ Target(){}
 virtual void Request() =0 ;
};


class Adaptee
{
public:
 Adaptee();
 virtual~ Adaptee();
 void SpecialRequest();
};

class Adapter : public Target
{
public:
 Adapter(Adaptee* apAdaptee);
 virtual ~Adapter();
 virtual void Request();
private:
 Adaptee* m_pAdaptee;
};
#endif

 

#include "stdafx.h"
#include "Adapter.h"
#include <iostream>

using namespace std;

Adaptee::Adaptee()
{
 cout<<"Adaptee::Adaptee()"<<endl;
}


Adaptee::~Adaptee()
{
 cout<<"Adaptee::~Adaptee()"<<endl;

}

void Adaptee::SpecialRequest()
{
 cout<<"Adaptee::SpecialRequest()"<<endl;
}


Adapter::Adapter(Adaptee* apAdaptee)
{
 cout<<"Adapter::Adapter()"<<endl;
 m_pAdaptee = apAdaptee;
}

void Adapter::Request()
{
 cout<<"Adapter::Request()"<<endl;
 m_pAdaptee->SpecialRequest();
}

Adapter::~Adapter()
{
 delete m_pAdaptee;
 m_pAdaptee = NULL;
 cout<<"Adapter::Adapter()"<<endl;

}


#include "stdafx.h"
#include "Adapter.h"
#include <stdlib.h>

int _tmain(int argc, _TCHAR* argv[])
{
 Adaptee* lpAdaptee = NULL;
 lpAdaptee = new Adaptee;

 Adapter* lpAdapter = NULL;
 lpAdapter = new Adapter(lpAdaptee);
 lpAdapter->Request();

 delete lpAdapter;
 lpAdaptee = NULL;
 system("pause");
 return 0;
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值