Sobes.tech
Назад к вопросам
Junior — Middle
64

Можешь привести пример использования структурного паттерна в проектировании программных систем?

Ответ от нейросети

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

Такой подход позволяет гибко расширять функциональность без изменения существующего кода.