Back to questions
Junior — Middle
65
Можешь привести пример использования структурного паттерна в проектировании программных систем?
Answer from AI
sobes.tech AI
Структурные паттерны проектирования помогают организовать отношения между классами и объектами для упрощения структуры системы.
Пример: паттерн "Декоратор" (Decorator).
Он позволяет динамически добавлять объектам новые обязанности, оборачивая их в другие объекты-декораторы, не изменяя исходный класс.
Пример на Java:
// Интерфейс компонента
interface Coffee {
double cost();
String ingredients();
}
// Конкретный компонент
class SimpleCoffee implements Coffee {
public double cost() { return 1.0; }
public String ingredients() { return "Coffee"; }
}
// Декоратор
class MilkDecorator implements Coffee {
private Coffee coffee;
public MilkDecorator(Coffee coffee) { this.coffee = coffee; }
public double cost() { return coffee.cost() + 0.5; }
public String ingredients() { return coffee.ingredients() + ", Milk"; }
}
// Использование
Coffee coffee = new MilkDecorator(new SimpleCoffee());
System.out.println(coffee.cost()); // 1.5
System.out.println(coffee.ingredients()); // Coffee, Milk
Такой подход позволяет гибко расширять функциональность без изменения существующего кода.