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

В каких случаях и для чего используется паттерн Декоратор в программировании?

Компании, где спрашивали
Soft Media Group
Фабрика РешенияФабрика Решения

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

sobes.tech AI

Паттерн Декоратор используется для динамического добавления новых обязанностей объекту без изменения его исходного кода. Это позволяет расширять функциональность объектов гибко и прозрачно для клиента.

Применяется, когда нужно добавить поведение к объекту во время выполнения, избегая создания множества подклассов для каждой комбинации функций.

В Python декоратор часто реализуется через классы или функции, которые оборачивают исходный объект.

Пример паттерна Декоратор на Python:

class Coffee:
    def cost(self):
        return 5

class MilkDecorator:
    def __init__(self, coffee):
        self._coffee = coffee
    def cost(self):
        return self._coffee.cost() + 2

basic_coffee = Coffee()
coffee_with_milk = MilkDecorator(basic_coffee)
print(coffee_with_milk.cost())  # Выведет 7

Здесь MilkDecorator добавляет стоимость молока к базовому кофе, не меняя класс Coffee.