首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

[设计方式]Adapter适配器模式

2013-01-21 
[设计模式]Adapter适配器模式Adapter适配器模式将一个类的接口转换成客户希望的另外一个接口。A d a p t e

[设计模式]Adapter适配器模式
Adapter适配器模式

将一个类的接口转换成客户希望的另外一个接口。A d a p t e r模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

[设计方式]Adapter适配器模式

双方都不适合修改的时候,可以考虑使用适配器模式。

Adapt模式其实就是把完成同样的一个功能但是接口不兼容的类桥接在一起使之可以在一起工作,这个没搜使得复用旧的接口成为可能。

小demo

adapter.h

#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

 

adapter.cpp

#include "Adapter.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();}

 

main.cpp

#include "Adapter.h"#include <stdlib.h>int main(){Adaptee *pAdaptee = new Adaptee;Target *pTarget = new Adapter(pAdaptee);pTarget->Request();delete pTarget;system("pause");return 0;}

 

热点排行