本文共 1132 字,大约阅读时间需要 3 分钟。
将一个类的接口转换成另外一个 用户希望的接口,解决由于接口不兼容而不能一起工作类,能一起工作。
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(); }
适配器得到了应用。
转载地址:http://tygka.baihongyu.com/