Встречается на собеседованиях • сегодня
В чем разница между паттернами декоратор и proxy
Декоратор и Proxy оба относятся к структурным паттернам, но решают разные задачи:
Proxy контролирует доступ к объекту, добавляя промежуточный слой. Он может кэшировать, лениво инициализировать или проверять права доступа, но не меняет поведение объекта.
java
interface Image {
void display();
}
class RealImage implements Image {
public void display() {
System.out.println("Displaying real image");
}
}
class ProxyImage implements Image {
private RealImage realImage;
text
public void display() {
if (realImage == null) {
realImage = new RealImage(); // Ленивая загрузка
}
realImage.display();
}}
text
**Декоратор** динамически добавляет новую функциональность объекту, оборачивая его. Может добавлять несколько слоёв.
```java
abstract class CoffeeDecorator implements Coffee {
protected Coffee decoratedCoffee;
public CoffeeDecorator(Coffee coffee) {
this.decoratedCoffee = coffee;
}
}
class MilkDecorator extends CoffeeDecorator {
public MilkDecorator(Coffee coffee) {
super(coffee);
}
public double getCost() {
return decoratedCoffee.getCost() + 0.5;
}
}Ключевое отличие: Proxy управляет доступом, а Decorator расширяет функциональность.

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