Sobes.tech
Back to questions
Junior — Middle
54

В каких ситуациях в Java Core применяют паттерн Декоратор?

Answer from AI

sobes.tech AI

Паттерн Декоратор в Java Core применяется, когда нужно динамически добавить объекту новые обязанности, не изменяя его исходный класс. Это особенно полезно, если:

  • Требуется расширить функциональность объекта без создания множества подклассов.
  • Нужно комбинировать поведение нескольких декораторов.
  • Желательно сохранить интерфейс объекта для прозрачного использования.

Пример: добавление логирования к объекту, реализующему интерфейс, без изменения его кода.

interface Service {
    void execute();
}

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

class LoggingDecorator implements Service {
    private Service wrapped;

    public LoggingDecorator(Service service) {
        this.wrapped = service;
    }

    public void execute() {
        System.out.println("Лог: начало выполнения");
        wrapped.execute();
        System.out.println("Лог: окончание выполнения");
    }
}

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