Sobes.tech
Junior — Middle

¿En qué casos se aplica el patrón Wrapper en programación?

sobes.tech AI

Respuesta de la IA

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

  • Добавления дополнительной логики (например, логирование, проверка прав) вокруг вызовов методов.
  • Приведения интерфейса объекта к другому виду (адаптация).
  • Контроля доступа к объекту.

Пример в Java: обёртка вокруг InputStream для подсчёта количества прочитанных байт.

class CountingInputStream extends InputStream {
    private InputStream wrapped;
    private int count = 0;

    public CountingInputStream(InputStream wrapped) {
        this.wrapped = wrapped;
    }

    @Override
    public int read() throws IOException {
        int b = wrapped.read();
        if (b != -1) count++;
        return b;
    }

    public int getCount() {
        return count;
    }
}