Sobes.tech
Junior — Middle
82

В каких случаях используют паттерн Декоратор для расширения функциональности объектов?

Сұралған компаниялар
Код Открытия

AI-дан жауап

sobes.tech AI

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

  • Требуется добавить поведение объекту во время выполнения.
  • Нужно комбинировать различные расширения гибко и независимо.

Пример на 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

Здесь объект coffee_with_milk расширяет функциональность базового кофе, добавляя стоимость молока.