Sobes.tech
Назад к вопросам
Junior — Middle
68

Объясните принцип использования паттерна Wrapper в компонентах и его назначение.

Ответ от нейросети

sobes.tech AI

Паттерн Wrapper (обёртка) в компонентах используется для добавления дополнительной функциональности к существующему объекту без изменения его кода. Это достигается путём создания нового класса, который содержит ссылку на оригинальный объект и переопределяет или расширяет его поведение.

Назначение паттерна Wrapper:

  • Инкапсуляция дополнительной логики (например, логирование, проверка прав, кэширование).
  • Изменение интерфейса или адаптация объекта к другому интерфейсу.
  • Упрощение или ограничение доступа к функционалу оригинального объекта.

Пример на Java:

interface Service {
    void execute();
}

class RealService implements Service {
    public void execute() {
        System.out.println("Выполнение основной логики");
    }
}

class ServiceWrapper implements Service {
    private Service wrapped;

    public ServiceWrapper(Service wrapped) {
        this.wrapped = wrapped;
    }

    public void execute() {
        System.out.println("Перед выполнением");
        wrapped.execute();
        System.out.println("После выполнения");
    }
}

// Использование:
Service service = new ServiceWrapper(new RealService());
service.execute();

В этом примере ServiceWrapper добавляет поведение до и после вызова метода execute оригинального объекта.