Adapter (C++实现 )

本文详细解析了C++中适配器模式的应用,通过实例展示了如何使用适配器类将不兼容的对象接口转换为兼容的形式,实现不同组件间的无缝交互。通过构造和析构函数的实现,以及特有请求方法的覆盖,使得原本不兼容的对象能够协同工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// Adapter.cpp : 定义控制台应用程序的入口点。
//

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

using namespace std;

 

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

class Adaptee
{
public:
 Adaptee(){}
 virtual ~Adaptee(){}
 void SpecialRequset()
 {
  cout<<"SpecialRequset of Adaptee"<<endl;
 }
};

 

//////////////////////////////////////////////////////////////

 

class Adapter_class:private Adaptee,public Target
{
  public:
   Adapter_class()
   {
    cout<<"Construction of Adapter_class"<<endl;
   }
   virtual ~Adapter_class()
   {
     cout<<"Destruction of Adapter_class"<<endl;
   }
   void Request()
   {
     SpecialRequset();
   }
};

 

 

//////////////////////////////////////////////////////////////

 

class Adpater_object:public Target
{
public:
 Adpater_object(Adaptee* m_p):m_pAdaptee(m_p)
 {
  cout<<"Construction of Adapter_objetc"<<endl;
 }
 virtual ~Adpater_object()
 {
  delete m_pAdaptee;
  m_pAdaptee=NULL;
  cout<<"Destruction of Adapter_class"<<endl;
 }

 

 void Request()
 {
  m_pAdaptee->SpecialRequset();
 }

private:
 Adaptee* m_pAdaptee;


};

 

int _tmain(int argc, _TCHAR* argv[])
{   //Client1
 Target *t=new Adapter_class();
 t->Request();
 delete t;
 
 //Client2
 Adaptee *p=new Adaptee();
 Target *t1=new Adpater_object(p);
 t1->Request();

 return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值