Sobes.tech
Junior — Middle

In quali casi e a cosa serve il pattern Decoratore nella programmazione?

sobes.tech AI

Risposta dell'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.