Junior
68
Приведи пример использования паттерна декоратор
Ответ от нейросети
sobes.tech AI
Паттерн "Декоратор" позволяет динамически добавлять объектам новые обязанности, оборачивая их в другие объекты-декораторы, не изменяя исходный код.
Пример на Java — простой декоратор для текстового вывода, который добавляет кавычки вокруг строки:
// Интерфейс компонента
interface Text {
String getContent();
}
// Конкретный компонент
class SimpleText implements Text {
private String text;
public SimpleText(String text) {
this.text = text;
}
public String getContent() {
return text;
}
}
// Абстрактный декоратор
class TextDecorator implements Text {
protected Text innerText;
public TextDecorator(Text innerText) {
this.innerText = innerText;
}
public String getContent() {
return innerText.getContent();
}
}
// Конкретный декоратор
class QuotedText extends TextDecorator {
public QuotedText(Text innerText) {
super(innerText);
}
public String getContent() {
return '"' + super.getContent() + '"';
}
}
// Использование
public class Main {
public static void main(String[] args) {
Text myText = new SimpleText("Привет");
Text quoted = new QuotedText(myText);
System.out.println(quoted.getContent()); // Выведет: "Привет"
}
}
Таким образом, декоратор добавляет функциональность (кавычки) без изменения исходного класса SimpleText.