设计模式之(十三、适配器模式)Adapter
适用范围:
将一个接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容不能一起工作的类可以一起工作。
在设计初期不考虑使用适配器模式,一般是在后期维护阶段。当双方都不太容易修改的时候再使用适配器模式适配。
实例:
姚明去NBA打球,因为他不懂英语,所以就需要翻译在教练和姚明间互相传达信息,翻译充当的角色即可以理解为适配器的功能。
适配器模式结构图
主要由接口类ITarget、子类CAdapter、特殊的接口实现类CAdaptee及客户端程序组成。
程序很简单。
C++关键代码实现:
1、接口类ITarget.h
virtual void Request() = 0;//纯虚函数
2、具体实现的子类CAdapter
CAdapter.h
CAdaptee m_adaptee;
CAdapter.cpp
CAdaper::Request()
{
m_adaptee.SpecificRequest();
}
3、特殊的接口实现类CAdaptee.cpp
CAdaptee::SpecificRequest()
{
cout<<"特殊的请求"<<endl;
}
4、客户端实现main.cpp
ITarget *t = new CAdapter();
t->Request();
//释放另外开辟的内存空间
if ( t != NULL)
{
delete t;
}