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

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