将对象的功能实现转变成提供者提供的功能结构。即保留现有类所提供的服务,向客户提供接口,实现不同接口之间的适配调用。

/*
* 使用情景:现有程序已经写好,或者是按程序设计时已经固定接口
* 但是又需要与其他程序或者接口匹配,调用实现
* 此时就需要用到设配器的模式---提供一个过渡转变方式调用实现
*
*/
public interface ITarget
{
void Show();
}
public class Target : ITarget
{
public void Show()
{
//TODO show
Console.WriteLine("Show");
}
}
public class Adapter : ITarget
{
private IAdaptee adaptee = null;
public Adapter(IAdaptee adaptee)
{
this.adaptee=adaptee;
}
public void Show()
{
adaptee.Display();
}
}
#region 一般为第三方或者其他已经固定的程序
public interface IAdaptee
{
void Display();
}
public class Adaptee : IAdaptee
{
public void Display()
{
//TODO display
Console.WriteLine("Display");
}
}
#endregion
适配器模式其实随处可见,实则是接口之间的调用。当然上面是常用的对象适配模式;如果是双向调用(例如是同一项目中的程序,而非第三方),那么我们可以使用类适配模式(一般不常用)
类适配模式的类图如下:

That‘s it...
原文:http://www.cnblogs.com/Joy-et/p/4841982.html