C++设计模式----对象适配器模式
2013-10-04 14:25
357 查看
适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
对于适配器模式有两种类型:类适配器模式和对象适配器模式
类适配器模式:通过多重继承对一个接口和另一个接口进行匹配,只有c++适合
对象适配器模式
适配器模式结构图:
Target类:这是客户所期待的接口。目标可以是具体的或者抽象的类。
class Target
{
public:
virtual void Request()
{
cout<< “普通请求!”<<endl;
}
};
Adaptee类:需要适配的类
class Adaptee
{
public:
void SpecificRequest()
{
cout<< “特殊请求!”<<endl;
}
};
Adapter类:通过在内部包装一个Adaptee对象,把源接口转换成目标接口
class Adapter : public Target
{
private:
Adaptee * adaptee = new Adaptee();
public:
void Request()
{
adaptee->SpecificRequest();
}
};
客户端:
void main()
{
Target * target = new Adapter();
target->Request();
}
何时使用适配器模式
在想使用一个已存在的类,但如果它的接口,也就是它的方法和你的要求不相同时,就应该考虑用适配器模式
两个类所做的事情相同或相似,但是具有不同的接口时要使用适配器模式
对于适配器模式有两种类型:类适配器模式和对象适配器模式
类适配器模式:通过多重继承对一个接口和另一个接口进行匹配,只有c++适合
对象适配器模式
适配器模式结构图:
Target类:这是客户所期待的接口。目标可以是具体的或者抽象的类。
class Target
{
public:
virtual void Request()
{
cout<< “普通请求!”<<endl;
}
};
Adaptee类:需要适配的类
class Adaptee
{
public:
void SpecificRequest()
{
cout<< “特殊请求!”<<endl;
}
};
Adapter类:通过在内部包装一个Adaptee对象,把源接口转换成目标接口
class Adapter : public Target
{
private:
Adaptee * adaptee = new Adaptee();
public:
void Request()
{
adaptee->SpecificRequest();
}
};
客户端:
void main()
{
Target * target = new Adapter();
target->Request();
}
何时使用适配器模式
在想使用一个已存在的类,但如果它的接口,也就是它的方法和你的要求不相同时,就应该考虑用适配器模式
两个类所做的事情相同或相似,但是具有不同的接口时要使用适配器模式
相关文章推荐
- c++设计模式--对象适配器模式
- C++设计模式——适配器模式(对象适配器、类适配器)
- 笔记:C++设计模式——适配器模式:对象适配器(复制自网络)
- C++设计模式——适配器模式(对象适配器、类适配器)
- 【面向对象设计模式】 适配器模式 (二)
- 设计模式学习--适配器模式(类适配器和对象适配器)
- 设计模式:适配器模式(7.1.1)C++版
- 设计模式C++实现(3)——适配器模式
- 设计模式观后(c++还原之十六 适配器模式)
- 设计模式 - 适配器模式 C++
- 设计模式—适配器模式—C++
- c++设计模式之适配器模式
- 【面向对象设计模式】 适配器模式 (二)
- C++设计模式4————(适配器模式)
- c++ 23种设计模式之适配器模式
- 《Head First 设计模式》例子的C++实现(适配器模式)
- 设计模式之适配器模式(C++实现)
- C++设计模式——适配器模式
- 深入解析设计模式中的适配器模式在C++中的运用
- 设计模式C++实现(3)——适配器模式