适配器模式 -- 大话设计模式
在今天,读书有时是件“麻烦”事。它需要你付出时间,付出精力,还要付出一份心境。--仅以《大话设计模式》来祭奠那逝去的……
适配器模式:将一个类的接口转换成客户希望的另外一个接口,主要应用于希望复用一些现存类,但接口又与复用环境要求不一致的情况
适配器模式分为类适配器模式和对象适配器模式,但是由于主流语言C#、Java等不支持多重继承,因此多使用对象适配器模式
1.适配器模式应用
将源接口转换成目标接口,及客户想要的接口
定义抽象适配类,及客户想要的接口
/// <summary> /// 抽象适配类(客户所期待的接口) /// </summary> public abstract class Target { public abstract void Request(); }
定义现存类
/// <summary> /// 现存业务类(需要适配的类) /// </summary> public class Adaptee { public void SpecificRequest() { Console.WriteLine("特殊请求"); } }
定义具体适配类,将源接口转换成目标接口
/// <summary> /// 具体适配类(将源接口转换成目标接口) /// </summary> public class Adapter : Target { private Adaptee adaptee = new Adaptee();//内置一个私有的现存类 /// <summary> /// 表面上调用的是客户要求的接口,但真正执行的是现存类的方法 /// </summary> public override void Request() { adaptee.SpecificRequest(); } }
开启场景模拟
static void Main(string[] args) { Target t = new Adapter(); t.Request(); }