Adapter
Convierte la interfaz de una clase en la que otra
espera. Adapter permite que clases trabajen juntas cosa que no sería
posible directamente debido a la incompatibilidad de sus interfaces.

class Target
{
// Methods
virtual public void Request()
{
// Normal implementation goes here
}
}
// "Adapter"
class Adapter : Target
{
// Fields
private Adaptee adaptee = new Adaptee();
// Methods
override public void Request()
{
// Possibly do some data manipulation
// and then call SpecificRequest
adaptee.SpecificRequest();
}
}
// "Adaptee"
class Adaptee
{
// Methods
public void SpecificRequest()
{
Console.WriteLine("Called SpecificRequest()" );
}
}
/// Client test
public class Client
{
public static void Main(string[] args)
{
// Create adapter and place a request
Target t = new Adapter();
t.Request();
}
}
Este patrón se centra en resolver incompatibilidades
entre dos interfaces existentes. Se utiliza para hacer funcionar las
cosas después de que estas han sido diseñadas.