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();
- }
适配器得到了应用。