一、UML图
二、包含的角色
Target类,这是客户期待的接口。可以是具体类或者抽象类或者接口。
Adaptee类,需要适配的类。
Adapter类,内部包装一个Adeptee对象,把源接口转换成目标接口。
三、特点
适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
系统的聚聚和行为都正确,但是接口不符合时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。
适配器模式主要用于希望复用一些现存的类,但是接口又与复用环境要求不一直的情况
四、代码实现
Target类
class Target {
public:
virtual void Request () {
Console.WriteLine("普通请求!");
}
}
Adaptee类
class Adaptee {
public:
void SpecificRequest () {
Console.WriteLine("特殊请求!");
}
}
Adapter类
class Adapter :public Target {
private:
Adaptee adaptee = new Adaptee();
public:
void Request () {
adaptee.SpecificRequest();
}
}
front end
Target *target = new Adapter();
target->Request();