C++设计模式之适配器模式(2)
复制代码 代码如下: /* ** FileName : AdapterPatternDemo ** Author : Jelly Young ** Date : 2013/11/27 ** Description : More information, please go to http://www.jellythink.com */ #include iostre
复制代码 代码如下:
/*
** FileName : AdapterPatternDemo
** Author : Jelly Young
** Date : 2013/11/27
** Description : More information, please go to http://www.jellythink.com
*/
#include <iostream>
using namespace std;
// Targets
class Target
{
public:
virtual void Request()
{
cout<<"Target::Request"<<endl;
}
};
// Adaptee
class Adaptee
{
public:
void SpecificRequest()
{
cout<<"Adaptee::SpecificRequest"<<endl;
}
};
// Adapter
class Adapter : public Target, Adaptee
{
public:
void Request()
{
Adaptee::SpecificRequest();
}
};
// Client
int main(int argc, char *argv[])
{
Target *targetObj = new Adapter();
targetObj->Request();
delete targetObj;
targetObj = NULL;
return 0;
}
对象适配器的代码实现
复制代码 代码如下:
/*
** FileName : AdapterPatternDemo
** Author : Jelly Young
** Date : 2013/11/27
** Description : More information, please go to http://www.jellythink.com
*/
#include <iostream>
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 main(int argc, char *argv[])
{
Target *targetObj = new Adapter();
targetObj->Request();
delete targetObj;
targetObj = NULL;
return 0;
}
总结
适配器模式很容易理解和实现,在以后的项目中,多多的进行实践,将学到的理论知识运用到实际的项目中去,写出漂亮的代码。
- 上一篇:C++设计模式之桥接模式
- 下一篇:C++设计模式之原型模式
精彩图集
精彩文章