Sobes.tech
Back to questions
Junior — Middle
70

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

Companies where asked
Soft Media Group
Фабрика РешенияФабрика Решения

Answer from AI

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.