Junior — Middle
105
Kun je een voorbeeld geven van het gebruik van een structureel patroon bij het ontwerpen van softwaresystemen?
Antwoord van 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
Такой подход позволяет гибко расширять функциональность без изменения существующего кода.