Встречается на собеседованиях • сегодня
В чем разница между паттернами адаптер и декоратор и прокси
Адаптер преобразует интерфейс одного класса в другой, чтобы сделать их совместимыми. Используется, когда нужно адаптировать старый код к новому интерфейсу.
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(); /* + extra */ }
}Прокси контролирует доступ к объекту, добавляя логику (ленивая инициализация, кеширование, проверка прав).
java
interface Service { void doWork(); }
class RealService implements Service { /*...*/ }
class Proxy implements Service {
private RealService service;
public void doWork() { /* проверка доступа */ service.doWork(); }
}Ключевые отличия:
- Адаптер меняет интерфейс, декоратор и прокси — нет.
- Декоратор добавляет функциональность, прокси — контроль доступа.
- Прокси управляет жизненным циклом объекта, адаптер/декоратор — нет.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы