Встречается на собеседованиях • сегодня

В чем разница между декоратором и адаптером

Декоратор и адаптер — структурные паттерны, но решают разные задачи:

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

java
interface Target { void request(); }
class Adaptee { void specificRequest() {} }
class Adapter implements Target {
    private Adaptee adaptee;
    public void request() { adaptee.specificRequest(); }
}

Декоратор динамически добавляет новую функциональность объекту, не изменяя его класса. Обёртывает исходный объект, сохраняя его интерфейс.

java
interface Component { void operation(); }
class ConcreteComponent implements Component { ... }
class Decorator implements Component {
    private Component component;
    public void operation() { 
        component.operation(); 
        // + доп. логика
    }
}

Ключевое отличие: адаптер меняет интерфейс, декоратор расширяет функциональность, сохраняя интерфейс.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы