Встречается на собеседованиях • сегодня
Что такое паттерн проектирования Decorator
Decorator — структурный паттерн, позволяющий динамически добавлять объектам новую функциональность, оборачивая их в полезные «обёртки». Это гибкая альтернатива наследованию для расширения поведения.
Пример:
java
interface Coffee {
double getCost();
String getDescription();
}
class SimpleCoffee implements Coffee {
public double getCost() { return 1.0; }
public String getDescription() { return "Simple coffee"; }
}
abstract class CoffeeDecorator implements Coffee {
protected final Coffee decoratedCoffee;
text
public CoffeeDecorator(Coffee coffee) {
this.decoratedCoffee = coffee;
}}
class MilkDecorator extends CoffeeDecorator {
public MilkDecorator(Coffee coffee) {
super(coffee);
}
text
public double getCost() {
return decoratedCoffee.getCost() + 0.5;
}
public String getDescription() {
return decoratedCoffee.getDescription() + ", milk";
}}
text
Основные плюсы:
- Добавляет функциональность без изменения существующего кода
- Позволяет комбинировать поведения во время выполнения
- Соответствует принципу открытости/закрытости
Используется в Java I/O (например, BufferedInputStream оборачивает FileInputStream)
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы