定义
将对象的功能实现转变成提供者提供的功能结构。即保留现有类所提供的服务,向客户提供接口,实现不同接口之间的适配调用。
类图描述
代码示例
1 /* 2 * 使用情景:现有程序已经写好,或者是按程序设计时已经固定接口 3 * 但是又需要与其他程序或者接口匹配,调用实现 4 * 此时就需要用到设配器的模式---提供一个过渡转变方式调用实现 5 * 6 */ 7 public interface ITarget 8 { 9 void Show(); 10 } 11 12 public class Target : ITarget 13 { 14 15 public void Show() 16 { 17 //TODO show 18 Console.WriteLine("Show"); 19 } 20 } 21 22 public class Adapter : ITarget 23 { 24 private IAdaptee adaptee = null; 25 public Adapter(IAdaptee adaptee) 26 { 27 this.adaptee=adaptee; 28 } 29 public void Show() 30 { 31 adaptee.Display(); 32 } 33 } 34 #region 一般为第三方或者其他已经固定的程序 35 public interface IAdaptee 36 { 37 void Display(); 38 } 39 public class Adaptee : IAdaptee 40 { 41 public void Display() 42 { 43 //TODO display 44 Console.WriteLine("Display"); 45 } 46 } 47 #endregion
总结
适配器模式其实随处可见,实则是接口之间的调用。当然上面是常用的对象适配模式;如果是双向调用(例如是同一项目中的程序,而非第三方),那么我们可以使用类适配模式(一般不常用)
类适配模式的类图如下:
That's it...