Adapter
Adapter - паттерн, позволяющий
преобразовать интерфейс объекта к тому, который требует клиент.
Для этого создается объект посредник, делегирующий вызовы
имеющемуся объекту. Вызов метода посредника делает один
или несколько вызовов методов реального объекта
(возможно, обрабатывая данные и приводя их к другому формату).
Это нужно, например, при использовании библиотек объектов,
в которых вас устраивает поведение, но не подходит интерфейс.
namespace Adapter_DesignPattern
{
using System;
class FrameworkXTarget
{
virtual public void SomeRequest(int x)
{
}
}
class FrameworkYAdaptee
{
public void QuiteADifferentRequest(string str)
{
Console.WriteLine("FrameworkYAdaptee:QuiteADifferentRequest = {0}", str);
}
}
class OurAdapter : FrameworkXTarget
{
private FrameworkYAdaptee adaptee = new FrameworkYAdaptee();
override public void SomeRequest(int a)
{
string b;
b = a.ToString();
adaptee.QuiteADifferentRequest(b);
}
}
public class Client
{
void GenericClientCode(FrameworkXTarget x)
{
x.SomeRequest(4);
}
public static int Main(string[] args)
{
Client c = new Client();
FrameworkXTarget x = new OurAdapter();
c.GenericClientCode(x);
return 0;
}
}
}

Back
|