兼容原来无法使用的接口,相当于一个接口转换器
采用继承原有接口类的方式

采用组合原有接口类的方式

class Program
{
static void Main() {
Adaptee adaptee = new Adaptee();
Target target = new Adapter(adaptee);
target.Request();
}
//需要被适配的类
public class Target {
public virtual void Request() {}
}
//与被适配对象提供不兼容接口的类
public class Adaptee {
public void SpecialRequest() {
Console.WriteLine("SpecialRequest of Adaptee");
}
}
//进行适配的类,采用聚合原有接口类的方式
public class Adapter : Target {
private Adaptee m_adaptee = new Adaptee();
public Adapter(Adaptee adaptee) {
m_adaptee = adaptee;
}
public override void Request() {
Console.WriteLine("Request of Adapter");
m_adaptee.SpecialRequest();
}
}
}
输出:
Request of Adapter
SpecialRequest of Adaptee