Sobes.tech
Back to questions
Junior — Middle
70

Можете объяснить принцип работы и назначение паттерна Адаптер (Adapter) в программировании?

Answer from AI

sobes.tech AI

Паттерн Адаптер (Adapter) используется для того, чтобы "адаптировать" интерфейс одного класса к интерфейсу, который ожидает клиент. Это позволяет использовать несовместимые по интерфейсу классы вместе.

Например, если у вас есть класс с одним интерфейсом, а вы хотите использовать класс с другим интерфейсом, то создаёте адаптер, который реализует нужный интерфейс и внутри вызывает методы адаптируемого класса.

Пример на C#:

// Интерфейс, который ожидает клиент
interface ITarget
{
    void Request();
}

// Класс с несовместимым интерфейсом
class Adaptee
{
    public void SpecificRequest() {
        Console.WriteLine("Вызов специфического запроса");
    }
}

// Адаптер, который делает Adaptee совместимым с ITarget
class Adapter : ITarget
{
    private Adaptee _adaptee = new Adaptee();

    public void Request() {
        _adaptee.SpecificRequest();
    }
}

Таким образом, клиент может работать с объектом через интерфейс ITarget, не заботясь о том, что внутри используется класс с другим интерфейсом.