Встречается на собеседованиях • сегодня
Работал ли с Decorator паттерном
Да, работал. Decorator — структурный паттерн, который позволяет динамически добавлять объектам новую функциональность, оборачивая их в классы-декораторы. Это альтернатива наследованию, но с гибкостью во время выполнения.
Пример:
java
interface Coffee {
String getDescription();
double getCost();
}
class SimpleCoffee implements Coffee {
public String getDescription() { return "Simple coffee"; }
public double getCost() { return 1.0; }
}
class MilkDecorator implements Coffee {
private Coffee coffee;
text
public MilkDecorator(Coffee coffee) { this.coffee = coffee; }
public String getDescription() {
return coffee.getDescription() + ", milk";
}
public double getCost() {
return coffee.getCost() + 0.5;
}}
// Использование:
Coffee coffee = new MilkDecorator(new SimpleCoffee());
System.out.println(coffee.getDescription()); // "Simple coffee, milk"
System.out.println(coffee.getCost()); // 1.5
text
Плюсы:
- Гибкость (добавление функциональности без изменения кода)
- Соответствует Open-Closed Principle
Минусы:
- Много маленьких классов
- Сложность конфигурации при множестве декораторов
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы