Back to questions
Junior — Middle
80
Можете объяснить, что представляет собой паттерн декоратор и какой его основной смысл?
Companies where asked
Bytime
Answer from AI
sobes.tech AI
Паттерн «Декоратор» позволяет динамически добавлять объектам новые обязанности, оборачивая их в другие объекты-декораторы, не изменяя исходный класс.
Основная идея — создать обёртку вокруг объекта, которая реализует тот же интерфейс и может выполнять дополнительную логику до или после вызова методов исходного объекта.
Это полезно, когда нужно расширить функциональность без наследования и изменения существующего кода.
Пример на псевдокоде:
interface Coffee {
double cost();
}
class SimpleCoffee implements Coffee {
public double cost() { return 5; }
}
class MilkDecorator implements Coffee {
private Coffee coffee;
public MilkDecorator(Coffee coffee) { this.coffee = coffee; }
public double cost() { return coffee.cost() + 2; }
}
// Использование:
Coffee coffee = new MilkDecorator(new SimpleCoffee());
System.out.println(coffee.cost()); // 7
Таким образом, декоратор позволяет гибко добавлять функциональность объектам во время выполнения.