Встречается на собеседованиях • сегодня
В чем разница между шаблонами проектирования Adapter, Facade и Proxy
Adapter преобразует интерфейс одного класса в интерфейс, ожидаемый клиентом, обеспечивая совместную работу несовместимых классов. Пример:
java
interface Target { void request(); }
class Adaptee { void specificRequest() {} }
class Adapter implements Target {
private Adaptee adaptee;
public void request() { adaptee.specificRequest(); }
}Facade предоставляет упрощенный интерфейс к сложной подсистеме, скрывая ее детали. Пример:
java
class CPU { void start() {} }
class Memory { void load() {} }
class ComputerFacade {
private CPU cpu;
private Memory memory;
public void start() { cpu.start(); memory.load(); }
}Proxy контролирует доступ к объекту, добавляя дополнительную логику (ленивая инициализация, кеширование). Пример:
java
interface Image { void display(); }
class RealImage implements Image { public void display() {} }
class ProxyImage implements Image {
private RealImage realImage;
public void display() {
if (realImage == null) realImage = new RealImage();
realImage.display();
}
}Ключевые различия:
- Adapter меняет интерфейс, Facade упрощает, Proxy контролирует доступ.
- Adapter работает с одним классом, Facade — с подсистемой, Proxy — с одним объектом.

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