1、 概念
将一个类的接口转换成另外一个 用户希望的接口,解决由于接口不兼容而不能一起工作类,能一起工作。
2、 模型
Target——客户端希望的接口。
NeedAdapter——新增的类,没有实现Target接口。由于客户端只认Target的一系列方法,所以NeedAdapter没法在客户端使用。
Adapter——适配器,实现Target接口,并负责当调用Target时,能调用NeedAdapter的方法。
模型图:
//原始的接口
public abstract class Target
{
public abstract void Request();
}
//需要用适配器的类,它有自己的方法,但是却不想继承或Target
public class NeedAdapter
{
public void UnusaulRequest()
{
Console.WriteLine("用户端需要像调用Target一样调用NeedAdapter,可是NeedAdapter又不方便去实现或继承Target");
}
}
//适配器类,继承自Target,并且负责把NeedAdapter经过处理,使当调用Target的法时,去调用NeedAdapter的方法。
public class Adapter : Target
{
private NeedAdapter needAdapter = new NeedAdapter();
public override void Request()
{
needAdapter.UnusaulRequest();
Console.WriteLine("使用适配器类,依然在客户端调用Target的方法,但是实际调用了NeedAdapter的方法,");
}
}
调用
static void Main(string[] args)
{
Target target = new Adapter();
target.Request();
Console.ReadKey();
}
适配器得到了应用。