by Piotrosz
5. February 2009
Adapter (należący do grupy wzorców strukturalnych) pozwala klasom współpracować ze sobą, co w innym przypadku byłoby niemożliwe z powodu niezgodności interfejsów między
tymi klasami.
Adapter tłumaczy wywołania metod jego interfejsu na wywołania oryginalnego (docelowego) interfejsu.
Trochę mało życiowy przykład:
namespace AdapterExample
{
public interface IOpenable
{
void Open();
}
// Słoik nie implementuje interfejsu IOpenable
// Adaptee
public class Jar
{
public void TwistOff()
{
Console.WriteLine("Jar::TwistOff()");
}
}
// Adapter do słoika
public class JarAdapter : IOpenable
{
private Jar _Jar;
public JarAdapter()
{
_Jar = new Jar();
}
public void Open()
{
_Jar.TwistOff();
}
}
class Program
{
static void Main(string[] args)
{
IOpenable JarOpen = new JarAdapter();
JarOpen.Open();
}
}
}